1、查看mysql的安装情况 rpm -qa | grep -i mysql
2.删除上命令中安装的软件 rpm -ev mysql-community-libs-5.7.27-1.el6.x86_64 --nodeps
3、都删除成功之后,查找相关的mysql的文件
find / -name mysql
4、删除全部文件
rm -rf /var/lib/mysql rm -rf /var/lib/mysql/mysql rm -rf /etc/logrotate.d/mysql rm -rf /usr/share/mysql rm -rf /usr/bin/mysql rm -rf /usr/lib64/mysql
5再次执行命令
rpm -qa | grep -i mysql #如果没有显式则表示卸载完成
# 切换用户 su mysql
# 下载Mysql的tar包 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz
设置用户组:用户 chown -R mysql : mysql mysql-8.0.20-e17-x86_64.tar.gz #此步骤不要,跟下步骤走
切到组: su mysql
如果su mysql密码错误:执行
切换用户:su mysql
输入新密码: su mysql
之后在opt下解压mysql8
解压失败的图片:
执行: rm -rf mysql-8.0.20-el7-x86_64.tar.gz
解压失败重新下载mysql8: wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz
再次减压:tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz
将mysql8解压包重命名:mv mysql-8.0.20-el7-x86_64 mysql_01
再次解压: tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz
将mysql8解压包重命名:mv mysql-8.0.20-el7-x86_64 mysql_02
将mysql_01和mysql_02改到mysql目录下:
chown -R mysql : mysql mysql_01/ mysql_02/
# 切换到mysql_01路径下 cd ./mysql_01 # 创建配置文件my.cnf,直接使用vim编辑,保存后即可。其中###表示为必须项,#表示为可选项 vim my.cnf
[mysqld]
port=10085 #端口号(主服务器端口) basedir=/opt/mysql_01/#存放路径
datadir=/opt/mysql_01/data/
socket=/opt/mysql_01/mysql.sock
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
user=mysql
log-bin = mysql-bin
binlog-do-db = panjin_jiudian #数据库表 binlog-ignore-db = mysql server-id = 1
[client] port=10085 #端口号
保存并退出: Esc下:wq
创建data: mkdir data
保持my.cnf统一:
接下来就需要修改mysql的默认配置信息
修改mysql.server默认配置:
以及修改该文件中加载的MySQL配置文件路径,修改为刚才创建的my.cnf文件,如下图,修改完成后,保存退出。
同样也需要修改support-files下的另一个文件
# 修改support-files文件夹下的mysqld_multi.server文件 vim ./support-files/mysqld_multi.server #还是修改basedir和datadir两项属性,如下图所示
# 切换到mysql_01的根目录 cd /opt/mysql_01/ # 初始化安装 --defaults-file表示指定初始化的配置文件 --console表示将初始化信息打印在控制台 ./bin/mysqld --defaults-file=/opt/mysql_01/my.cnf --initialize --console --user=mysql # 初始化成功后,会在控制台中打印出初始化密码,大致格式如下初始密码要记住,后面需要用到,很重要 root@localhost: fa356fgss,
# 后台启动当前mysql_01的mysql服务,还是需要去指定配置文件,因为在配置文件中我们设置了一个socket参数,只有按照这个配置文件去启动,才会按照socket配置的路径去生成,否则会自动生成在/tmp/mysql.sock,如果mysql_02也是这么生成,则会形成覆盖,在连接时造成只能连接一个服务,甚至报错。 ./bin/mysqld_safe --defaults-file=./my.cnf & # 使用命令查看mysql服务是否启动,如下图 netstat -nultp|grep 10085
开防火墙:
firewall-cmd --zone=public --add-port=10085/tcp --permanent #配置防火墙端口
firewall-cmd --reload #启动配置的防火墙
cd ./mysql_02
vim my.cnf
[mysqld]
port=10086 #端口号(从服务器端口) basedir=/opt/mysql_02/#存放路径
datadir=/opt/mysql_02/data/
socket=/opt/mysql_02/mysql.sock
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
user=mysql
log-bin = mysql-bin
binlog-do-db = panjin_jiudian #数据库表与主库一至 binlog-ignore-db = mysql server-id = 2
[client] port=10086 #端口号
保存并退出: Esc下:wq
其余同配置mysql_01;
接下来就需要修改mysql_02的默认配置信息 如上
同样配置之后,启动mysql_02,效果如下
mysql-01的连接
./bin/mysql --socket=./mysql.sock -uroot -p # 输入初始密码
# 修改MySQL登录密码,这儿我的修改为 root,注意末尾的结束符分号 alter user root@localhost identified by "root"; 设置所有ip的用户名为root如下图所示: update user set host ='%' where user = 'root';
修改mysql的加密规则:
刷新:flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; #更新一下用户的密码 root用户密码为root
刷新:flush privileges;
刷新:mysql>flush hosts;
mysql_02配置==============同上连接数据库与修改密码
配置主从复制mysql=======================================>
修改mysql_01的my.cnf配置文件
修改mysql_02的my.cnf配置文件
重启服务:mysql_01/02
可以把守护进程干掉:kill -TERM 21736
启动服务:
./bin/mysqld_safe --defaults-file=./my.cnf & 连接mysql
./bin/mysql --socket=./mysql.sock -uroot -p #输入自己的密码
use mysql;
mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; Query OK, 0 rows affected (0.01 sec)
mysql> GRANT REPLICATION SLAVE ON . TO 'repl'@'%'; Query OK, 0 rows affected (0.00 sec)
mysql> show grants for repl; +----------------------------------------------+ | Grants for repl@% | +----------------------------------------------+ | GRANT REPLICATION SLAVE ON . TO repl
@%
| +----------------------------------------------+ 1 row in set (0.00 sec)
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) ———————————————
在配置主从复制前,保证两个数据库(Master和Slave)的数据一致,首先将主数据库(Master)中需要配置主从的数据库数据导出来,使用如下命令,然后导入到从数据库(Slave)中(注意执行这条命令之前不要用use切换到任何数据库下,直接在bin目录下执行就行,不用提前登录): ————————————————
mysql>exit
kill掉进程:
kill掉之后再重启mysql_01/02服务.
./bin/mysqld_safe --defaults-file=./my.cnf &
cd mysql_01
./bin/mysql --socket=./mysql.sock -uroot -p
记住图红圈代码:
mysql>exit;
切到从服务器:./bin/mysql --socket=./mysql.sock -uroot -p
执行: change master to master_host = '127.0.0.1' , master_user='repl' , master_password='root' ,master_port=10085, master_log_file = 'mysql-bin.000001' , master_log_pos=156;
开启主从备份: start slave;
查看备份状态: SHOW SLAVE STATUS\G
完成.