MySQL8.0.x多实例
1.1 准备
1.1.1 创建数据目录
mkdir -p /data/330{7..9}/data
chown -R mysql.mysql /data/*
结果:
[root@localhost ~]# mkdir -p /data/330{7..9}/data
[root@localhost ~]# ls -ld /data/*
drwxr-xr-x 3 root root 18 Nov 13 23:23 /data/3306
drwxr-xr-x 3 root root 18 Nov 21 21:42 /data/3307
drwxr-xr-x 3 root root 18 Nov 21 21:42 /data/3308
drwxr-xr-x 3 root root 18 Nov 21 21:42 /data/3309
[root@localhost ~]# chown -R mysql.mysql /data/*
[root@localhost ~]# ls -ld /data/*
drwxr-xr-x 3 mysql mysql 18 Nov 13 23:23 /data/3306
drwxr-xr-x 3 mysql mysql 18 Nov 21 21:42 /data/3307
drwxr-xr-x 3 mysql mysql 18 Nov 21 21:42 /data/3308
drwxr-xr-x 3 mysql mysql 18 Nov 21 21:42 /data/3309
[root@localhost ~]#
1.1.2 配置文件
实例1:
cat > /etc/my3307.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sock
server_id=7
port=3307
EOF
实例2:
cat > /etc/my3308.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sock
server_id=8
port=3308
EOF
实例3:
cat > /etc/my3309.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sock
server_id=9
port=3309
EOF
结果:
[root@localhost ~]# cat /etc/my3307.cnf #实例1
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sock
server_id=7
port=3307
[root@localhost ~]# cat /etc/my3308.cnf #实例2
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sock
server_id=8
port=3308
[root@localhost ~]# cat /etc/my3309.cnf #实例3
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sock
server_id=9
port=3309
[root@localhost ~]#
1.2 初始化数据
mysqld --defaults-file=/etc/my3307.cnf --initialize-insecure
mysqld --defaults-file=/etc/my3308.cnf --initialize-insecure
mysqld --defaults-file=/etc/my3309.cnf --initialize-insecure
结果:
[root@localhost ~]# mysqld --defaults-file=/etc/my3307.cnf --initialize-insecure
2021-11-21T13:45:09.343400Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.24-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.24) initializing of server in progress as process 9537
2021-11-21T13:45:09.365221Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-11-21T13:45:10.546944Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-11-21T13:45:12.129679Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@localhost ~]# mysqld --defaults-file=/etc/my3308.cnf --initialize-insecure
2021-11-21T13:45:22.038192Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.24-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.24) initializing of server in progress as process 9580
2021-11-21T13:45:22.050197Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-11-21T13:45:23.067962Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-11-21T13:45:24.634758Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# mysqld --defaults-file=/etc/my3309.cnf --initialize-insecure
2021-11-21T13:45:29.217673Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.24-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.24) initializing of server in progress as process 9623
2021-11-21T13:45:29.237397Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-11-21T13:45:30.162730Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-11-21T13:45:31.525275Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@localhost ~]#
1.3 启动
mysqld_safe --defaults-file=/etc/my3307.cnf &
mysqld_safe --defaults-file=/etc/my3308.cnf &
mysqld_safe --defaults-file=/etc/my3309.cnf &
结果:
[root@localhost ~]# mysqld_safe --defaults-file=/etc/my3307.cnf &
[1] 9666
[root@localhost ~]# Logging to '/data/3307/data/localhost.localdomain.err'.
2021-11-21T13:47:41.575789Z mysqld_safe Starting mysqld daemon with databases from /data/3307/data
[root@localhost ~]# mysqld_safe --defaults-file=/etc/my3308.cnf &
[2] 9846
[root@localhost ~]# Logging to '/data/3308/data/localhost.localdomain.err'.
2021-11-21T13:47:46.860188Z mysqld_safe Starting mysqld daemon with databases from /data/3308/data
[root@localhost ~]# mysqld_safe --defaults-file=/etc/my3309.cnf &
[3] 10026
[root@localhost ~]# Logging to '/data/3309/data/localhost.localdomain.err'.
2021-11-21T13:47:54.233706Z mysqld_safe Starting mysqld daemon with databases from /data/3309/data
[root@localhost ~]#
1.4 检查验证
netstat -lntup|grep 33
结果:
[root@localhost ~]# netstat -lntup|grep 33
tcp6 0 0 :::3306 :::* LISTEN 9145/mysqld
tcp6 0 0 :::3307 :::* LISTEN 9805/mysqld
tcp6 0 0 :::3308 :::* LISTEN 9985/mysqld
tcp6 0 0 :::3309 :::* LISTEN 10165/mysqld
tcp6 0 0 :::33060 :::* LISTEN 9145/mysqld
1.5 登录验证
mysql -S /tmp/mysql3307.sock
mysql -S /tmp/mysql3308.sock
mysql -S /tmp/mysql3309.sock
结果:
[root@localhost ~]# mysql -S /tmp/mysql3307.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.24 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
[root@localhost ~]# mysql -S /tmp/mysql3308.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.24 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
[root@localhost ~]# mysql -S /tmp/mysql3309.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.24 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
[root@localhost ~]#
1.6 停止
mysqladmin -S /tmp/mysql3307.sock shutdown
mysqladmin -S /tmp/mysql3308.sock shutdown
mysqladmin -S /tmp/mysql3309.sock shutdown
结果:
[root@localhost ~]# mysqladmin -S /tmp/mysql3307.sock shutdown
2021-11-21T14:02:28.756113Z mysqld_safe mysqld from pid file /data/3307/data/localhost.localdomain.pid ended
[1] Done mysqld_safe --defaults-file=/etc/my3307.cnf
[root@localhost ~]# mysqladmin -S /tmp/mysql3308.sock shutdown
2021-11-21T14:02:40.753111Z mysqld_safe mysqld from pid file /data/3308/data/localhost.localdomain.pid ended
[2]- Done mysqld_safe --defaults-file=/etc/my3308.cnf
[root@localhost ~]# mysqladmin -S /tmp/mysql3309.sock shutdown
2021-11-21T14:02:43.923949Z mysqld_safe mysqld from pid file /data/3309/data/localhost.localdomain.pid ended
[3]+ Done mysqld_safe --defaults-file=/etc/my3309.cnf
[root@localhost ~]#
1.4 小结
1.停止数据库时候,可以登录到数据库,在交互模式下停止;(mysql> shutdown;)
2.这里初始化的时候使用的是 --initialize-insecure参数,所以不会生成密码,登录的时候也不需要输入密码。如果要生成密码,可以使用参数:--initialize,例如:
[root@localhost ~]# mysqld --defaults-file=/etc/my3309.cnf --initialize
2021-11-21T14:08:31.173035Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.24-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.24) initializing of server in progress as process 10258
2021-11-21T14:08:31.193484Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-11-21T14:08:31.734446Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-11-21T14:08:32.914291Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (y8+1xr6W;#k #初始化密码,登录的时候需要,登录后,需要修改密码才能做相关操作
[root@localhost ~]#