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 |
+-------------+