MySQL安装
删除原有安装的mysql
检查是否已安装的mysql
rpm -qa | grep mysql
复制代码
证明已安装mysql,需要删除
删除原有mysql
# 后缀文件名,以自己本地实际情况为准
rpm -e --nodeps --allmatches mysql-community-common-5.7.32-1.el7.x86_64
rpm -e --nodeps --allmatches mysql-community-server-5.7.32-1.el7.x86_64
rpm -e --nodeps --allmatches mysql-community-libs-5.7.32-1.el7.x86_64
rpm -e --nodeps --allmatches mysql-community-libs-compat-5.7.32-1.el7.x86_64
rpm -e --nodeps --allmatches mysql-mmm-2.2.1-15.el7.noarch
rpm -e --nodeps --allmatches mysql-mmm-agent-2.2.1-15.el7.noarch
rpm -e --nodeps --allmatches mysql57-community-release-el7-8.noarch
rpm -e --nodeps --allmatches mysql-community-client-5.7.32-1.el7.x86_64
复制代码
rpm 命令
-e 删除指定的套件,卸载rpm包
--nodeps 不验证套件档的相互关联性,强制删除
--allmatches 删除符合指定的套件所包含的文件,删除所有相同名字的包
复制代码
再次验证是否卸载赶紧
如果彻底删除,需要把所有跟mysql相关的文件或文件夹都删除 rm -rf命令
查询所有mysql相关的文件夹
find / -name mysql
复制代码
删除相关目录和文件夹
# 后缀文件名,以自己本地实际情况为准
rm -rf /usr/share/mysql/ /var/lib/mysql/ /var/lib/mysql/mysql/ /usr/lib64/perl5/vendor_perl/DBD/mysql /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/ /etc/selinux/targeted/active/modules/100/mysql/
复制代码
验证是否删除完毕
检查mysql用户组和用户是否存在,如果没有,则创建
# 查询是否存在mysql用户组
cat /etc/group | grep mysql
# 查询是否存在mysql用户
cat /etc/passwd |grep mysql
复制代码
# 添加mysql用户组
groupadd mysql
# 添加mysql用户
useradd -r -g mysql mysql
复制代码
创建用户
useradd [options] 用户名
注: -g 指定用户所属的群组
删除用户
userdel [options] LOGIN
注: -f,--force 强制删除用户,不管该用户是否在使用
注: -h,--help 帮助信息
注: -r,--remove 删除用户和组并且删除用户的家目录和邮件通知目录
注: 不加参数删除用户 “userdel 用户名” 不加参数删除只会删除用户、密码、用户组、不会删除用户的家和用户的邮件目录
创建用户组
groupadd 组名
删除用户组
groupdel 组名
修改用户组
修改用户组名: groupmod -h 新组名 老组名
修改用户组ID: groupmod -g 新组ID 老组ID
复制代码
安装mysql(5.7版本)
下载mysql yum源
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
复制代码
本地安装mysql yum源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
复制代码
<!--备注: yum localinstall是用来安装本地rpm包的命令,首先rpm包要先下载到本地-->
复制代码
查看mysql yum源是否可使用
yum repolist enabled | grep "mysql.*-community.*"
复制代码
yum repolist all #显示所有的仓库列表
yum repolist enabled #显示可用的仓库列表
yum repolist disabled #显示不可用的仓库列表
复制代码
安装mysql服务
yum install -y mysql-community-server
复制代码
mysql 目前分两个版本,商业版和社区版。
mysql-community-server 是社区版,免费提供的,而商业版是收费的
复制代码
启动mysql
systemctl start mysqld
复制代码
若出现如下问题,执行如下步骤(若成功,请忽略)
解决报错步骤一:执行journalctl -xe 命令
journalctl -xe
复制代码
提示:Could not open file '/var/log/mysqld.log' for error logging: Permission denied
解决报错步骤二:修改文件的拥有者和群组
chown -R mysql:mysql /var/log/mysqld.log
复制代码
解决报错步骤三:查看mysql配置文件my.cnf,获取data目录
tail /etc/my.cnf
复制代码
查看mysql中的data目录内是否有数据,若有数据,则清空目录
cd /var/lib/mysql
复制代码
解决报错步骤三:清空mysql data目录
rm -rf *
复制代码
解决报错步骤四:再次启动mysql
systemctl start mysqld
复制代码
设置mysql服务开机自启动
systemctl enable mysqld
复制代码
重新加载服务的配置文件
systemctl daemon-reload
复制代码
如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载
查看mysql是否启动成功
ps -ef|grep mysql
复制代码
说明启动成功
获取mysql默认的密码
grep password /var/log/mysqld.log
复制代码
使用默认密码进入mysql
mysql -uroot -p #回车输入密码
复制代码
登录成功
修改MySQL密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'kaikeba100';
复制代码
退出后,使用新密码重新登录
双主复制架构搭建
创建replication 用户
Master01机器、Master02机器创建replication 用户
create user replication identified by "kaikeba100";
grant all privileges on *.* to replication@'%' identified by 'kaikeba100';
flush privileges;
复制代码
开启mysql bin_log日志
Master01机器:开启mysql bin_log日志
# 编辑mysql配置文件
vim /etc/my.cnf
# 将log_bin注释打开,并标识server身份
复制代码
systemctl restart mysqld
复制代码
Master02机器:开启mysql bin_log日志
同上,log_bin注释打开,server-id设置为2,并重启MySQL服务
mysql 备份
Master01机器:mysql 备份
mysqldump --single-transaction --master-data=2 --all-databases -uroot -pkaikeba100 > dump1.sql;
复制代码
mysqldump命令
--all-databases:导出全部数据库
--master-data:在备份文件中写入备份时的binlog文件,在恢复进,增量数据从这个文件之后的日志开始恢复。值为1时,binlog文件名和位置没有注释,为2时,则在备份文件中将binlog的文件名和位置进行注释
--single-transaction:适合innodb事务数据库的备份。保证备份的一致性,原理是设定本次会话的隔离级别为Repeatable read,来保证本次会话(也就是dump)时,不会看到其它会话已经提交了的数据。
复制代码
Master01机器:查看生成的备份文件,获取MASTER_LOG_FILE和MASTER_LOG_POS
more dump1.sql
复制代码
Master02机器:复制机器一的数据
change master to master_host='10.0.10.240',master_user='replication',master_password='kaikeba100',MASTER_LOG_FILE='rabbitmq001-bin.000001',MASTER_LOG_POS=154;
复制代码
Master02机器:执行主从复制命令
start slave;
复制代码
注:关闭slave命令: stop slave
复制代码
Master02机器:查看slave状态
show slave status \G;
复制代码
Master02机器:mysql 备份
mysqldump --single-transaction --master-data=2 --all-databases -uroot -pkaikeba100 > dump2.sql
复制代码
Master02机器:查看生成的备份文件,获取MASTER_LOG_FILE和MASTER_LOG_POS
more dump2.sql
复制代码
Master01机器:复制机器二的数据
change master to master_host='10.0.10.241',master_user='replication',master_password='kaikeba100',MASTER_LOG_FILE='rabbitmq002-bin.000003',MASTER_LOG_POS=154;
复制代码
Master01机器:执行主从复制命令
start slave;
复制代码
Master01机器:查看slave状态
show slave status \G;
复制代码
测试功能
Master01机器:创建一个测试库test
在Master02机器上会自动出现test测试库
近期评论