mysql安装
1. Centos
centos7 yum源停止维护,很多东西下不了,centos9,要使用dnf 试了半天,也是安装不了。
2. 乌班图版
2.1. 安装8
跟着百度这个做,亲测成功。

2.2. 配置
1:允许远程连接:
上面安装,第4步中,自由选择

2.3. 远程连接
如果root用户,linux中可以登录,远程连接不了。则还要修改配置文件
2.3.1. 修改配置文件
- 1 编辑配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf - 2 将bind-address及下面一行的值更改为0.0.0.0,
2.3.2. 创建用户
如果重启后,还是无法连接,则新建个用户试一下:
-
1
%代表所有ip都可以连接。
CREATE USER 'username'@'%' IDENTIFIED BY 'password@@123GIT'; -
2授予用户权限
可操作所有库和所有表。
GRANT ALL PRIVILEGES ON . TO 'username'@'%' WITH GRANT OPTION; -
3 刷新权限表
FLUSH PRIVILEGES; -
4 客户端工具连接测试一下,应该是好了,防火墙,安全组等检查是否放行。
2.4. 修改端口
2.4.1. 修改配置文件
步骤1:修改文件
MySQL 配置文件 (/etc/my.cnf 或 /etc/mysql/my.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf)
[client]
port = 3307
bind-address = 0.0.0.0
步骤2:重启
sudo systemctl start mysql
步骤3:检查端口是否修改成功
// 如果不是root用户,一定要加sudo 才查得到。
sudo ss -tuln | grep 3307
sudo lsof -i:3307
// root客户端登录
// 大P是端口,小p是密码
mysql -h 172.16.16.45 -P 3306 -u root -p123
2.4.2. 登录后操作
步骤1:root用户登录
mysql -u root -p
步骤2:创建新用户
// 密码太简单,可能会提示报错1819
// %表示 允许所有ip连接
CREATE USER 'root2'@'%' IDENTIFIED BY '想设置的密码';
步骤3:授予权限
// 下面的含义是让root2拥有root一样的权限
GRANT ALL PRIVILEGES ON *.* TO 'root2'@'%' WITH GRANT OPTION;
步骤4:刷新权限
FLUSH PRIVILEGES;
步骤 5: 确保 MySQL 监听正确的网络接口
// 允许所有ip都可以连接
bind-address = 0.0.0.0
步骤 6: 重启mysql
sudo systemctl restart mysql
步骤 7: 关闭指定端口的防火墙
sudo ufw allow 3307/tcp
# 或者
sudo ufw allow 3307/tcp
步骤 8: 客户端软件连接测试

2.5. 命令
- 停止
sudo systemctl stop mysql
sudo systemctl stop mysqld - 启动命令:
systemctl start mysql or systemctl start mysqld - 查看端口:
登录以后执行mysql的命令:
SHOW GLOBAL VARIABLES LIKE 'port';
3. win版-配置环境变量
1步:

2步:

3步:验证安装成功,配置好环境变量后,再起一个窗口

4. 安装win版
不建议zip安装,一大堆配置,容易搞不好
4.1. 8.0图形安装版
亲测成功,跟着一步步点击
https://blog.csdn.net/qq_59636442/article/details/123058454
4.2. 5.x图形安装版
基本都是下一步,注意左边从上到下,可能要下载c++依赖库。
- 官方下载地址: https://dev.mysql.com/downloads/installer/
1步:
![image]()
2步:自定义安装
![image]()
3步:
![image]()
4步:选择服务器模式
![image]()
![image]()
5步:8.0可以用asa加密方式


5. 登录mysql
- 格式: mysql -h主机地址 -P端口 -u用户名 -p密码
- 本机缩写:可以不写-h
6. 客户端
- 免费客户端:HeidiSQL
下载地址: https://www.heidisql.com/download.php?download=portable-64&place=LinkLabelRelease#google_vignette
7. 主从复制
主库master配置
1:修改配置文件
MySQL 配置文件 (/etc/my.cnf 或 /etc/mysql/my.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf)
# 集群id必须唯一,取值范围:1 - 2^32 -1 ,默认为1
server-id=1
# 是否只读,1=只读,0=可读写
read-only=0
# 不需要同步的数据库,示例:emp不参与主从复制集群
#binlog-ignore-db=emp
#指定只主从同步哪些库,示例:只有user库参与主从复制,其他库都不参与
# binlog-do-db=user
2: 重启服务
sudo systemctl restart mysql
3-1: root重新登录
3-2: 创建主从复制新账号
-- 1. 创建用户
CREATE USER 'root6'@'%' IDENTIFIED BY 'SecurePass123!';
-- 2. 授予 test2 库的 DDL + DML 权限
GRANT ALTER, CREATE, DROP, INDEX, INSERT, SELECT, UPDATE, DELETE ON test2.* TO 'root6'@'%';
-- 3. 授予主从复制权限
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'root6'@'%';
-- 4. 刷新权限
FLUSH PRIVILEGES;
-- 5. 验证
SHOW GRANTS FOR 'root6'@'%';
4: 查看 主从复制的二进制日志信息
show master status;
File : binlog.000031 代表写到哪个文件。
Position: 693, 从哪个位置开始推送日志。
Binlog_Do_DB:指定的要主从复制的库。
Binlog_Ignore_DB: 不需要主从复制的库。
Executed_Gtid_Set:集群全局事务id集合,用于比对主从节点是否一致。
从库slave配置
1:修改配置文件
MySQL 配置文件 (/etc/my.cnf 或 /etc/mysql/my.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf)
# 集群id必须唯一,取值范围:1 - 2^32 -1 ,默认为1
server-id=2
# 普通用户从库只读,超级管理员还是有读写权限
# 是否只读,1=只读,0=可读写
read-only=1
# 此命令作用:此库所有用户都没有写权限
super-read-only=1
2:重启Mysql
参照主库
3:root登录Mysql
参照主库
4:设置主库配置
8.0.23之后的语法
// SOURCE_LOG_FILE, SOURCE_LOG_POS 需要登录主库后,执行 show master status查看;
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.194.0', SOURCE_USER='root5', SOURCE_PASSWORD='pwd@@123GIt', SOURCE_LOG_FILE='binlog.000031', SOURCE_LOG_POS=693;
8.0.23之前的语法
CHANGE MASTER TO MASTER_HOST=/xXX.XXx.XXX.XXx', MASTER_USER=xXx', MASTER_PASSWORD='xXX, MASTER_LOG_FILE=xXx', MASTER_LOG_POS=XXX;
5:开启同步复制
# 8.0.22之后(老版本也会生效)
start replica
# 8.0.22之前
start slave
6:查看主从同步状态
# 8.0.22之后(老版本也会生效)
show replica status\G;
show slave status\G;
重点关注属性:
Replica_IO_Running: 必须为Yes, Connecting代表没连接上;
Replica_SQL_Running: Yes






浙公网安备 33010602011771号