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连接问题

相关推荐
Elastic 中国社区官方博客2 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
仍然.2 小时前
MYSQL--- 聚合查询,分组查询和联合查询
数据库
一 乐2 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
啦啦啦_99992 小时前
Redis-0-业务逻辑
数据库·redis·缓存
自不量力的A同学3 小时前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
Exquisite.3 小时前
Mysql
数据库·mysql
全栈前端老曹3 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
R1nG8633 小时前
CANN资源泄漏检测工具源码深度解读 实战设备内存泄漏排查
数据库·算法·cann
阿钱真强道4 小时前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
逍遥德4 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring