1.下载 MySQL Yum Repository https://dev.mysql.com/downloads/repo/yum/
mysql80-community-release-el7-3.noarch.rpm
2.上传到Linux下的 /opt 目录, 进入到 /opt下
yum install mysql80-community-release-el7-3.noarch.rpm
3.执行命令
yum install mysql-community-server
4.启动mysql服务并且查看状态
systemctl start mysqld
systemctl status mysqld
5.查看mysql安装的临时密码
grep 'temporary password' /var/log/mysqld.log
6.使用临时密码登录mysql,并且修改密码
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
7.刷新权限
flush privileges;
8.退出用新密码重新登录
exit;
mysql -u root -p
9.创建一个用户并且设置密码,因为Navicat连接数据库使用的时候旧的密码加密方式,所以我们这里设置密码的时候使用旧的加密方式 mysql_native_password
create user 'user'@'%' identified with mysql_native_password by 'MyNewPass4!';
10.给用户授权
grant all on *.* to 'user'@'%';
11.刷新权限
flush privileges;
12.Navicat登录成功!
搭建主从
- 编辑MySql主上的/etc/my.cnf,
log-bin=imooc_mysql
server-id=1
- log-bin: Mysql的bin-log的名字
- server-id:Mysql实例中全局唯一,并且大于0.
2.编辑Mysql从上的/etc/my.cnf
server-id=2
- server-id: Mysql实例中全局唯一,并且大于0。与主上的server-id 分开。
3.在Mysql主上创建用于备份账号
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
4.Mysql主上加锁,组织所有的写入操作
FLUSH TABLES WITH READ LOCK;
5.Mysql主上,查看bin-log的文件名和位置
SHOW MASTER STATUS;
6.Mysql主上dump所有数据。
mysqldump --all-databases --master-data > dbdump.db -uroot -p
7.Mysql主进行解锁,解锁后,主上可以写入操作。
mysql> UNLOCK TABLES;
8.Mysql从上导入之前备份的dump数据。
mysql < dbdump.db -uroot -p
9.Mysql从上配置主从连接信息。
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_PORT=port_num,
-> GET_MASTER_PUBLIC_KEY=1,
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
- master_host_name : MySQL主的地址
- port_num : MySQL主的端口(数字型)
- GET_MASTER_PUBLIC_KEY: Mysql默认使用插件caching_sha2_password,有些client连接报这个错误,需要拿到server的public key来加密password。
- replication_user_name : 备份账户的用户名
- replication_password : 备份账户的密码
- recorded_log_file_name :bin-log的文件名
- recorded_log_position : bin-log的位置(数字型)
- bin-log的文件名和位置 是 步骤5中的show master status 得到的。
10.Mysql从上开启同步
mysql> START SLAVE;
查看Mysql的从状态
show slave status;