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%';

img

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,记录下结果中FilePosition的值

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异常

  1. 排查问题:
# 排查uuid是否相同
select uuid();

如果相同,修改或者删除默认生成的uuid,然后重启mysql服务

# 查看uuid
cat /var/lib/mysql/auto.cnf
# 直接删除
 rm /var/lib/mysql/auto.cnf 
# 重启服务
 systemctl restart mysqld
  1. 排查Server_id是否生效

    show variables like 'server_id';
    

    如果sever_id都是1,或者都是一样的话,需要重新配置。

错误二:Slave_IO_Running:connect

这个错误,应该是创建的账号权限有问题,建议重新创建。

Loading...