56、本地数据库迁移到阿里云

现有需求,本地数据库迁移到阿里云上。

库名xy102

表 test01

test02

test01 test02

3条数据。

1、登录阿里云界面创建免费试用ECS实列。

阿里云登录页 (aliyun.com)](https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fusercenter2.aliyun.com%2Fhome%2Fmyfreetier)

2、选择2核4G,centos7.6,两台机器,然后设置账户密码,以及查看公网ip。

3、xshell客户端新建连接,ip地址为ECS实例的公网地址。

4、

[root@mysql1 opt]# systemctl stop firewalld
[root@mysql1 opt]# setenforce 0

[root@mysql1 opt]# systemctl restart mysqld

[root@aliyun1 ~]# systemctl stop firewalld
[root@aliyun1 ~]# setenforce 0

5、通过scp用mysql进行传输数据压缩包

[root@mysql1 opt]# scp mysql-8.0.30-el7-x86_64.tar.gz root@8.149.247.173:/opt/
The authenticity of host '8.149.247.173 (8.149.247.173)' can't be established.
ECDSA key fingerprint is SHA256:sJmF545LYGbyN6MrAoU/CpP9Wa0wrFxcnDlQ4h5RJvo.
ECDSA key fingerprint is MD5:c8:7d:d7:dd:54:4e:e0:a4:1b:7a:0b:f0:eb:7e:fa:c0.
Are you sure you want to continue connecting (yes/no)? yes

root@8.149.247.173's password: 
mysql-8.0.30-el7-x86_64.tar.gz     100%  470MB   4.1MB/s   01:54   

6、创建数据库xy102,以及test1、test2表

create database xy102;

CREATE TABLE test01(
id int(3),
name char(5),
address varchar(10)
);

INSERT into test01 values(1,'ly1','nanjing');
INSERT into test01 values(2,'ly2','nanjing');
INSERT into test01 values(3,'ly3','nanjing');

CREATE TABLE test02(
id int(3),
name char(5),
address varchar(10)
);
INSERT into test02 values(1,'ly1','chuzhou');
INSERT into test02 values(2,'ly2','chuzhou');
INSERT into test02 values(3,'ly3','chuzhou');

7、备份数据库xy102.sql到/opt目录下

mysqldump -u root -p --databases xy102 > /opt/xy102.sql

8、阿里云主机安装mysql数据库

[root@aliyun1 /]# cd /opt/
[root@aliyun1 opt]# ls
mysql-8.0.30-el7-x86_64.tar.gz

tar -xf mysql-8.0.30-el7-x86_64.tar.gz 

 mv mysql-8.0.30-el7-x86_64 mysql

mv mysql /usr/local/

#创建程序用户管理
useradd -s /sbin/nologin mysql

#修改mysql目录和配置文件的权限
 chown -R mysql:mysql /usr/local/mysql/
[root@mysql1 mysql]# chown mysql:mysql /etc/my.cnf

#修改配置文件
 vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION



#设置环境变量,申明/宣告mysql命令便于系统识别
 echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
 source /etc/profile

#初始化数据库:
 cd /usr/local/mysql/bin/
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

报错:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决办法:

原因分析:

服务器上面没有安装libiao这个包,需要我们去下载一下就好了

yum -y install libaio

./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

#设置系统识别,进行操作:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
 systemctl daemon-reload
ystemctl restart mysqld

#初始化数据库密码:
mysqladmin -u root -p password "123456"
直接回车即可

#进入数据库:
mysql -u root -p123456
#创建用户并设置密码:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

#赋予远程连接的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.00 sec)

#刷新生效
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

#修改加密方式,可以进行远程连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

9、传送xy102数据库到阿里云主机上

scp xy102.sql root@8.149.247.173:/opt/
root@8.149.247.173's password: 
xy102.sql                          100% 2769    97.1KB/s   00:00 

10、热备份恢复数据库到阿里云主机上

cd /opt/
[root@aliyun1 opt]# ls
mysql-8.0.30-el7-x86_64.tar.gz  xy102.sql
[root@aliyun1 opt]# mysql -u root -p < /opt/xy102.sql
Enter password: 
[root@aliyun1 opt]# mysql -u root -p123456
use xy102;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------+
| Tables_in_xy102 |
+-----------------+
| test01          |
| test02          |
+-----------------+
2 rows in set (0.01 sec)

mysql> select *from  test01;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    1 | ly1  | nanjing |
|    2 | ly2  | nanjing |
|    3 | ly3  | nanjing |
+------+------+---------+
3 rows in set (0.00 sec)

mysql> select * from  test02;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    1 | ly1  | chuzhou |
|    2 | ly2  | chuzhou |
|    3 | ly3  | chuzhou |
+------+------+---------+
3 rows in set (0.00 sec)

解决navicat连接问题

相关推荐
Ahern_2 分钟前
Oracle 普通表至分区表的分区交换
大数据·数据库·sql·oracle
夜半被帅醒20 分钟前
MySQL 数据库优化详解【Java数据库调优】
java·数据库·mysql
不爱学习的啊Biao34 分钟前
【13】MySQL如何选择合适的索引?
android·数据库·mysql
破 风44 分钟前
SpringBoot 集成 MongoDB
数据库·mongodb
Rverdoser1 小时前
MySQL-MVCC(多版本并发控制)
数据库·mysql
m0_748233641 小时前
SQL数组常用函数记录(Map篇)
java·数据库·sql
阿隆ALong1 小时前
云手机+YouTube:改变通信世界的划时代技术
智能手机·矩阵·云计算·arm
dowhileprogramming1 小时前
Python 中的迭代器
linux·数据库·python
0zxm2 小时前
08 Django - Django媒体文件&静态文件&文件上传
数据库·后端·python·django·sqlite
Minxinbb7 小时前
MySQL中Performance Schema库的详解(上)
数据库·mysql·dba