# MySQL安装以及主从配置

author:肖博、韩皖

createTime:2021-04-27

updateTime:2022-02-16

​ 1.新增MySQL卸载方法

# 一、MySQL安装(熟悉MySQL8安装的直接略过)

# 1.卸载

安装mysql时需要先检查本机是否安装过mysql

查看当前安装mysql情况

# rpm -qa|grep -i mysql 

显示安装情况如下

# rpm -qa|grep -i mysql
mysql-5.1.73-8.el6_8.x86_64
mysql-libs-5.1.73-8.el6_8.x86_64
mysql-devel-5.1.73-8.el6_8.x86_64
mysql-server-5.1.73-8.el6_8.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64

停止mysql服务、删除之前安装的mysql

删除命令:rpm -ev –-nodeps 包名

# rpm -e –nodeps mysql-5.1.73-8.el6_8.x86_64
# ...

如果提示依赖包错误,则使用以下命令尝试

# rpm -qa | grep -i mysql
mysql-libs-5.1.73-3.el6_5.x86_64
 
# rpm -ev mysql-libs-5.1.73-3.el6_5.x86_64  
error: Failed dependencies:
        libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64
        libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64
        mysql-libs is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64
# rpm -ev mysql-libs-5.1.73-3.el6_5.x86_64   --nodeps

查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

# find / -name mysql
/usr/lib64/perl5/DBD/mysql
/usr/lib64/perl5/auto/DBD/mysql
/usr/lib64/mysql
/usr/include/mysql
/usr/share/mysql
/usr/bin/mysql
/var/lib/mysql
/var/lib/mysql/mysql
# 

查找目录并删除 注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

# 2.安装

下载MySQL8

# wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

安装yum源

# yum localinstall mysql80-community-release-el7-1.noarch.rpm

更新yum源

# yum clean all

编译

# yum makecache

创建Mysql账户

# groupadd mysql

分组

# useradd -g mysql mysql

安装mysql

# yum install mysql-community-server

启动MySQL

# systemctl start mysqld

查看初始化密码

# cat /var/log/mysqld.log | grep password

登录MySQL

# mysql -u root -p

修改初始化密码

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

使用mysql数据库

# use mysql;

设置所有用户可以连接

# update user set host='%' where user='root';

允许任何主机访问数据库

# grant all privileges on *.* to 'root'@'%' with grant option;

刷新权限

# FLUSH PRIVILEGES;

# 二、主从配置

# 1.主从MySQL安装成功后,修改配置文件

主从配置都加入server-id配置,值为数字,不能相同,修改后重启

# 2.主库创建用户

# CREATE USER 'rep'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl-123456';
# GRANT REPLICATION SLAVE ON *.* TO 'rep'@'%';

# 3.从库执行同步命令

# change master to master_host='172.16.10.5',master_port=3306,master_user='rep',master_password='Repl-123456',master_log_file='mysql-bin.000001',master_log_pos=154 

注:(master_log_file和master_log_pos通过主库执行命令show master status获取)

# 4.开启slave

# start slave

# 5.查看slave状态

# show slave status\G