Centos9 安装mysql
第 1 步。首先,让我们首先确保您的系统是最新的。
sudo dnf clean all
sudo dnf update
步骤 2. 在 CentOS 9 Stream 上安装 MySQL。
默认情况下,MySQL 在 CentOS 9 Stream 基础存储库中可用。让我们使用以下命令安装 MySQL 服务器:
sudo dnf install mysql mysql-server
验证 MySQL 安装:
mysql --version
安装完成后,现在启用 MySQL(系统启动时自动启动),启动 MySQL,并使用以下命令验证状态:
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysql服务
systemctl stop mysqld 停止mysql服务
说明:
可以设置开机时启动mysql服务,避免每次开机启动mysql。执行如下指令:
systemctl enable mysqld
我们可以通过如下两种方式,来判定mysql是否启动:
netstat -tunlp 查看已经启动的服务
netstat -tunlp | grep mysql 查看mysql的服务信息
ps –ef | grep mysql 查看mysql进程
备注:
A. netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
参数说明:
没有该命令的话,可以使用
yum install net-tools安装-l或--listening:显示监控中的服务器的Socket; -n或--numeric:直接使用ip地址,而不通过域名服务器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况;
B. ps命令用于查看Linux中的进程数据。
第三步:保护 MySQL。
默认情况下,MySQL 未加固。mysql_secure_installation您可以使用脚本保护 mysqldb,你应该仔细阅读下面的每个步骤,这些步骤将设置一个 root 密码,删除匿名用户,禁止远程 root 登录,并删除测试数据库和访问安全 MySQL:
mysql_secure_installation
像这样配置它:
# 设置root密码
- Set root password? [Y/n] y
#设置密码级别
- There are three levels of password validation policy: [0/1/2] 0
#删除匿名用户
- Remove anonymous users? [Y/n] y
#不允许远程登录
- Disallow root login remotely? [Y/n] n
#删除测试数据库
- Remove test database and access to it? [Y/n] y
#重新加载表
- Reload privilege tables now? [Y/n] y
开启root远程登录,在本地操作
1、连接服务器: mysql -u root -p
2、看当前所有数据库:show databases;
3、进入mysql数据库:use mysql;
4、查看mysql数据库中所有的表:show tables;
5、查看user表中的数据:select Host, User from user;
6、修改user表中的Host:update user set Host='%' where User='root';
7、最后刷新一下:flush privileges;
如果您想连接到 MySQL 并开始向其中添加数据,请运行以下命令:
mysql -u root -p
mysql8设置简单密码
版本:MySql 8.0.20
如果设置密码 123456 在修改密码时遇到 Your password does not satisfy the current policy requirements
如何解决? 方案一: 设置一个符合规则的密码:Abc123... ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc123...';
方案二: 如果你就想设置 密码为 123456,怎么办?
a、先设置为符合规范的密码: Abc123... ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc123...';
b、然后查看当前默认规则:SHOW VARIABLES LIKE 'validate_password%';

c、修改校验密码策略等级
set global validate_password.policy=LOW;
d、设置密码长度至少为 6
set global validate_password.length=4;
e、最后设置 1234
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
就可以了
mysql 主从配置
1.2.2 主数据库配置
服务器:192.168.128.200
1). 修改Mysql数据库的配置文件/etc/my.cnf.d/mysql-server.cnf
在最下面增加配置:
log-bin=mysql-bin #[必须]启用二进制日志
server-id=200 #[必须]服务器唯一ID(唯一即可)
2). 重启Mysql服务
执行指令:
systemctl restart mysqld
3). 创建数据同步的用户并授权
登录mysql,并执行如下指令,创建用户并授权:
# 创建xiaoming用户,密码Root@123456
CREATE USER 'share'@'192.168.128.7' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
#查询xiaoming用户是否创建成功
select user, host from user;
#查询权限
SHOW GRANTS FOR 'share'@'192.168.128.7';
#给share用户授权,可以是全部,也可以是部分
GRANT REPLICATION SLAVE ON *.* TO 'xiaoming'@'192.168.128.7';
//刷新
flush privileges;
4). 登录Mysql数据库,查看master同步状态
执行下面SQL,记录下结果中File和Position的值
show master status;
注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作
1.2.3 从库配置
服务器: 192.168.128.201
1). 修改Mysql数据库的配置文件/etc/my.cnf.d/mysql-server.cnf
server-id=201 #[必须]服务器唯一ID
2). 重启Mysql服务
systemctl restart mysqld
3). 登录Mysql数据库,设置主库地址及同步位置
#停止主从服务
stop slave;
#配置远程服务
change master to master_host='192.168.200.200',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=154;
#重启主从服务
start slave;
参数说明:
A. master_host : 主库的IP地址
B. master_user : 访问主库进行主从复制的用户名(上面在主库创建的)
C. master_password : 访问主库进行主从复制的用户名对应的密码
D. master_log_file : 从哪个日志文件开始同步(上述查询master状态中展示的有)
E. master_log_pos : 从指定日志文件的哪个位置开始同步(上述查询master状态中展示的有)
4). 查看从数据库的状态
show slave status\G;
注意:Slave_IO_Running: NO异常
- 排查问题:
# 排查uuid是否相同
select uuid();
如果相同,修改或者删除默认生成的uuid,然后重启mysql服务
# 查看uuid
cat /var/lib/mysql/auto.cnf
# 直接删除
rm /var/lib/mysql/auto.cnf
# 重启服务
systemctl restart mysqld
排查Server_id是否生效
show variables like 'server_id';如果sever_id都是1,或者都是一样的话,需要重新配置。
错误二:Slave_IO_Running:connect
这个错误,应该是创建的账号权限有问题,建议重新创建。
