1 启停方式

1、维护性的任务
对于维护性操作,我们一般会将需要的参数临时的加到命令行,但是同时也会读取/etc/my.cnf的内容,但是如果冲突,命令行优先级最高
[root@db01 ~]# mysqld_safe —skip-grant-tables —skip-networking &
2、另外一种启停方式
[root@db01 ~]# mysqld_safe &
[root@db01 ~]# mysqladmin -uroot -p123 shutdown

2 mysql连接选项

mysql命令常见选项
-u 指定用户
-p 指定密码
-S 指定sock文件
-h 指定连接主机IP
-P 指定连接端口
-e 免交互执行sql命令
< 将备份数据导入到数据库
[root@db01 ~]# mysql -uroot -p -S /tmp/mysql.sock 通过socket方式连接
[root@db01 ~]# mysql -uroot -p -h 10.0.0.51 -P3306 指定IP地址与端口
[root@db01 ~]# mysql -uroot -p -e “show databases;” 免交互执行sql命令
[root@db01 ~]# mysql -uroot -pabc123.. < /root/world.sql 将world数据导入到数据库
[root@db01 ~]# source /root/world.sql 也可以通过source方式导入数据库
内置命令
help 打印帮助
\c ctrl+c
\q 退出 exit; quit; ctrl+d
\G 将数据进行列值显示(竖着显示)
source 恢复备份文件,同<功能一样
source /root/world.sql

3 初始配置文件

初始化配置作用:

  • 影响数据库的启动
  • 影响到客户端的功能

初始化配置方法:

  • 初始化配置文件(例如/etc/my.cnf)
  • 启动命令行上进行设置(例如:mysqld_safe mysqld)
  • 预编译时设置(仅限于编译安装是设置)

配置文件读取的顺序
[root@db01 ~]# mysqld —help —verbose | grep my.cnf
/etc/my.cnf —>/etc/mysql/my.cnf—>/usr/local/mysql/etc/my.cnf—>~/.my.cnf
强制使用自定义配置文件
—defaults-file
[root@db01 ~]# mysqld_safe —defaults-file=/tmp/aa.txt &

3.1 配置文件语法格式

  1. [标签]
  2. xxx=xxx
  3. [标签]
  4. xxx=xxx
  5. 配置文件标签归类
  6. 服务器端:
  7. [mysqld]
  8. [mysqld_safe]
  9. [server] #是上两个标签的概括,但通常不建议这么写
  10. 客户端:
  11. [mysql]
  12. [mysqladmin]
  13. [mysqldump]
  14. [client] #是上三个标签的概括,不建议采用这种归结的标签方式

3.2 配置文件案例

  1. #服务器配置
  2. [mysqld]
  3. #用户
  4. user=mysql
  5. #软件安装目录
  6. basedir=/app/mysql
  7. #数据路径
  8. datadir=/data/mysql/data
  9. #socket文件位置
  10. socket=/tmp/mysql.sock
  11. #服务器的id,主从复制的时候会用到
  12. server_id=6
  13. #端口号
  14. port=3306
  15. #客户端配置
  16. [mysql]
  17. #socket文件位置
  18. socket=/tmp/mysql.sock

4 数据库多实例

4.1 准备配置文件

1、准备多个实例的数据目录
[root@db01 ~]# mkdir -p /data/mysql/instance-330{7,8,9}/data
[root@db01 ~]# chown -R mysql.mysql /data/*
2、准备配置文件
实例1
[root@db01 ~]# vim /data/mysql/instance-3307/my.cnf

  1. cat > /data/mysql/instance-3307/my.cnf <<EOF
  2. [mysqld]
  3. basedir=/app/mysql
  4. datadir=/data/mysql/instance-3307/data
  5. socket=/data/mysql/instance-3307/mysql.sock
  6. log_error=/data/mysql/instance-3307/mysql.log
  7. port=3307
  8. server_id=7
  9. log_bin=/data/mysql/instance-3307/mysql-bin
  10. EOF

实例2
[root@db01 ~]# vim /data/mysql/instance-3308/my.cnf

  1. cat > /data/mysql/instance-3308/my.cnf <<EOF
  2. [mysqld]
  3. basedir=/app/mysql
  4. datadir=/data/mysql/instance-3308/data
  5. socket=/data/mysql/instance-3308/mysql.sock
  6. log_error=/data/mysql/instance-3308/mysql.log
  7. port=3308
  8. server_id=8
  9. log_bin=/data/mysql/instance-3308/mysql-bin
  10. EOF

实例3
[root@db01 ~]# vim /data/mysql/instance-3309/my.cnf

  1. cat > /data/mysql/instance-3309/my.cnf <<EOF
  2. [mysqld]
  3. basedir=/app/mysql
  4. datadir=/data/mysql/instance-3309/data
  5. socket=/data/mysql/instance-3309/mysql.sock
  6. log_error=/data/mysql/instance-3309/mysql.log
  7. port=3309
  8. server_id=9
  9. log_bin=/data/mysql/instance-3309/mysql-bin
  10. EOF

4.2 对三个实例进行初始化

将默认数据库的配置文件重命名,以免影响初始化
[root@db01 ~]# mv /etc/my.cnf /etc/my.cnf.bak
实例1:

  1. mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/instance-3307/data --basedir=/app/mysql --explicit_defaults_for_timestamp

实例2

  1. mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/instance-3308/data --basedir=/app/mysql --explicit_defaults_for_timestamp

实例3

  1. mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/instance-3309/data --basedir=/app/mysql --explicit_defaults_for_timestamp

4.3 配置systemd管理多实例

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

4.4 启动并验证

1、启动
[root@db01 ~]# systemctl restart mysqld3307.service mysqld3308.service mysqld3309.service
2、验证多实例
[root@db01 ~]# ss -tnl | grep 330
[root@db01 ~]# mysql -S /data/mysql/instance-3307/mysql.sock -e “select @@server_id”
[root@db01 ~]# mysql -S /data/mysql/instance-3308/mysql.sock -e “select @@server_id”
[root@db01 ~]# mysql -S /data/mysql/instance-3309/mysql.sock -e “select @@server_id”
3、连接
[root@db01 ~]# mysql -S /data/mysql/instance-3307/mysql.sock
[root@db01 ~]# mysql -S /data/mysql/instance-3308/mysql.sock
[root@db01 ~]# mysql -S /data/mysql/instance-3309/mysql.sock

UI连接工具

sqlyog
navicat