MySQL的初始化配置,临时维护和多实例配置

1.初始化的三种形式

  • 预编译
  • 配置文件
  • 命令行

2.初始化配置文件

  • 2.1mysql在启动时会默认找默认配置文件
[root@db01 ~]#  mysqld --help --verbose |grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
                      my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default

注:如果有多个配置文件,且配置文件不一样,以最后一个读取配置文件为准

3.初始化配置文件的格式

root@db01 ~]#  cat /etc/my.cnf 
[mysqld]                                                 #标签
user=mysql                                           #管理用户
basedir=/application/mysql                        #软件安装目录
datadir=/data/mysql/data                              #数据存放目录
socket=/tmp/mysql.sock                           # socket文件位置
server_id=6                           #系统标号(1-65535之间,做数据库主从)
port=3306                                     #端口号
log_error=/data/mysql/data/mysql.log                    #错误日志的目录
[mysql]
socket=/tmp/mysql.sock                 #客户端socket文件目录(必须和服务端位置一样)

4.MySQL的其他启动方式

4.1临时性维护
4.1.1mysql_safe开启数据库(修改数据库密码)

[root@db01 ~]# mysqld_safe --skip-grant-tables &  #mysqld_safe + 所需要的维护性参数
[1] 11674
[root@db01 ~]# 2019-08-15T01:27:35.668125Z mysqld_safe Logging to '/data/mysql/data/db01.err'.
2019-08-15T01:27:35.754532Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/data

4.1.2mysql_safe关闭数据库

[root@db01 ~]#  mysqladmin shutdown 
2019-08-15T01:30:56.009858Z mysqld_safe mysqld from pid file /data/mysql/data/db01.pid ended
[1]+  Done                    mysqld_safe --skip-grant-tables

4.2mysqld

[root@db01 ~]#  mysqld &
[root@db01 ~]# pkill mysqld

4.3启动多个数据库

[root@db01 /etc]# cp my.cnf /opt/my.cf
[root@db01 /etc]# vim /opt/my.cf
[root@db01 /etc]# cat /opt/my.cf 
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql1.sock
[mysql]
socket=/tmp/mysql.sock
[root@db01 ~]# mysqld --defaults-file=/opt/my.cnf & #指定配置文件路径
[root@db01 ~]# mysql -uroot -p123 -S /tmp/mysql1.sock #指定socket文件

5.MySQL多实例

5.1 准备多个目录

[root@db01 ~]# mkdir -p /data/330{7,8,9}/data

5.2 准备配置文件

[root@db01 /data/3307]# cat my.cnf 
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
log_error=/data/3307/mysql.log
[root@db01 /data/3308]# cat my.cnf 
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
log_error=/data/3308/mysql.log
[root@db01 /data/3309]# cat my.cnf 
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
log_error=/data/3309/mysql.log

5.3 初始化三套数据

[root@db01 ~]# mv /etc/my.cnf /etc/my.cnf.bak
root@db01 ~]# mysqld --initialize-insecure --basedir=/application/mysql  --datadir=/data/3307/data
root@db01 ~]# mysqld --initialize-insecure --basedir=/application/mysql  --datadir=/data/3308/data
[root@db01 ~]# mysqld --initialize-insecure --basedir=/application/mysql --datadir=/data/3309/data

5.4 systemd管理多实例

[root@db01 ~]# cd /etc/systemd/system/ 
[root@db01/etc/systemd/system]# cp mysqld.service /etc/systemd/system/mysqld3307.service 
[root@db01 /etc/systemd/system]# cp mysqld.service /etc/systemd/system/mysqld3308.service 
[root@db01 /etc/systemd/system]# cp mysqld.service /etc/systemd/system/mysqld3309.service 
[root@db01 /etc/systemd/system]#vim mysqld3307.service
ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf
[root@db01 /etc/systemd/system]#vim mysqld3308.service
ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf
[root@db01 /etc/systemd/system]#vim mysqld3309.service
ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3309/my.cn

5.5 目录授权

[root@db01 /etc/systemd/system]# chown -R mysql.mysql /data/*

5.6 启动多实例

[root@db01 ~]# systemctl start mysqld3307.service 
[root@db01 ~]# systemctl start mysqld3308.service 
[root@db01 ~]# systemctl start mysqld3309.service 

5.7 验证多实例

[root@db01 /data/3307]# netstat -lnp | grep 330
tcp6       0      0 :::3307                 :::*                    LISTEN      14700/mysqld        
tcp6       0      0 :::3308                 :::*                    LISTEN      14834/mysqld        
tcp6       0      0 :::3309                 :::*                  
[root@db01 /data/3307]# mysql -S /data/3307/mysql.sock -e "select @@server_id"
+-------------+
| @@server_id |
+-------------+
|           7 |
+-------------+
[root@db01 /data/3307]# mysql -S /data/3308/mysql.sock -e "select @@server_id"
+-------------+
| @@server_id |
+-------------+
|           8 |
+-------------+
[root@db01 /data/3307]# mysql -S /data/3309/mysql.sock -e "select @@server_id"
+-------------+
| @@server_id |
+-------------+
|           9 |
+-------------+
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。