mysql安装

1. Centos

centos7 yum源停止维护,很多东西下不了,centos9,要使用dnf 试了半天,也是安装不了。

2. 乌班图版

2.1. 安装8

跟着百度这个做,亲测成功。
image

2.2. 配置

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

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: 客户端软件连接测试
image

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步:
image

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

4. 安装win版

不建议zip安装,一大堆配置,容易搞不好

4.1. 8.0图形安装版

亲测成功,跟着一步步点击
https://blog.csdn.net/qq_59636442/article/details/123058454

4.2. 5.x图形安装版

基本都是下一步,注意左边从上到下,可能要下载c++依赖库。

image
image

5. 登录mysql

  • 格式: mysql -h主机地址 -P端口 -u用户名 -p密码
  • 本机缩写:可以不写-h

6. 客户端

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

posted @ 2022-08-13 17:46  jf666new  阅读(25)  评论(0)    收藏  举报