1、MySQL的启动和关闭

1.1 客户端命令

mysql常用参数:

-u             用户

-p             密码

-h             IP

-P             端口

-S             socket文件

-e             免交互执行命令

<              导入SQL脚本

1.2 日常启停

MYSQL体系结构和管理-2_配置文件

提示:

以上多种方式,都可以单独启动MySQL服务

mysqld_safe和mysqld一般是在临时维护时使用。

另外,从Centos 7系统开始,支持systemd直接调用mysqld的方式进行启动数据库

mysql.server start ---> mysqld_safe ---> mysqld

mysql.service ---> mysqld

需要依赖于 /etc/my.cnf

1.3 维护性的任务

mysqld_safe --skip-grant-tables --skip-networking &

我们一般会将我们需要的参数临时加到命令行.

也会读取/etc/my.cnf的内容,但是如果冲突,命令行优先级最高

[root@db01 ~]# mysqld_safe &          启动mysql

[root@db01 ~]# mysqladmin -uroot -p123 shutdown 关闭mysql(通过mysql_safe启动的,需要关闭的话,就是用该命令)

2、初始化配置

2.1 作用

(1)影响数据库的启动

(2)影响到客户端的功能

2.2 初始化配置的方法

(1)初始化配置文件(例如/etc/my.cnf)

(2)启动命令行上进行设置(例如:mysqld_safe mysqld)

(3)预编译时设置(仅限于编译安装时设置)

2.3 初始化配置文件

2.3.1 初始化配置文件的默认读取路径

[root@db01 ~]# mysqld --help --verbose |grep my.cnf

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

2.3.2 初始化配置文件读取顺序

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

默认情况下,MySQL启动时,会依次读取以上配置文件,如果有重复选项,会以最后一个文件设置的为准。

但是,如果启动时加入了--defaults-file=xxxx时,以上的所有文件都不会读取

2.3.3 初始化配置文件的书写格式

[标签]

xxx=xxx

[标签]

xxx=xxx

2.4 配置文件标签的归类

服务器端:

[mysqld]

[mysqldsafe]

[server] =====>包含了[mysqld]、[mysqldsafe]

客户端:

[mysql]

[mysqladmin]

[mysqldump]

[client] =====>包含了[mysql]、[mysqladmin]、[mysqldump]

2.5 配置文件设置样板(5.7)

#服务器端配置

[mysqld]

#用户

user=mysql

#软件安装目录

basedir=/application/mysql

#数据路径

datadir=/data/mysql/data

#socket文件位置

socket=/tmp/mysql.sock

#服务器id号

server_id=1

#端口号

port=3306

#客户端配置

[mysql]

#socket文件位置

socket=/tmp/mysql.sock

2.6 强制使用自定义配置文件

--defautls-file

[root@db01 tmp]# mysqld_safe --defaults-file=/tmp/aa.txt &

例如:使用systemd启动的mysql就是强制读取的/etc/my.cnf。

MYSQL体系结构和管理-2_mysql_02

3、MySQL的连接管理

3.1 mysql 命令

注意:提前应该将用户授权做好

mysql> grant all on . to root@'10.0.0.%' identified by '123';

TCPIP:

mysql -uroot -p -h 10.0.0.51 -P3306

Socket:

mysql -uroot -p -S /tmp/mysql.sock

3.2 客户端工具

sqlyog

navicat

4、多实例管理

4.1 准备多个目录

mkdir -p /data/330{7,8,9}/data

4.2 准备配置文件

cat > /data/3307/my.cnf <<EOF

[mysqld]

basedir=/application/mysql

datadir=/data/3307/data

socket=/data/3307/mysql.sock

logerror=/data/3307/mysql.log

port=3307

serverid=7

log_bin=/data/3307/mysql-bin

EOF

cat > /data/3308/my.cnf <<EOF

[mysqld]

basedir=/application/mysql

datadir=/data/3308/data

socket=/data/3308/mysql.sock

logerror=/data/3308/mysql.log

port=3308

serverid=8

log_bin=/data/3308/mysql-bin

EOF

cat > /data/3309/my.cnf <<EOF

[mysqld]

basedir=/application/mysql

datadir=/data/3309/data

socket=/data/3309/mysql.sock

logerror=/data/3309/mysql.log

port=3309

serverid=9

log_bin=/data/3309/mysql-bin

EOF

4.3 初始化三套数据

mv /etc/my.cnf /etc/my.cnf.bak

mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/application/mysql

mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/application/mysql

mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/application/mysql

4.4 systemd管理多实例

cd /etc/systemd/system

cp mysqld.service mysqld3307.service

cp mysqld.service mysqld3308.service

cp mysqld.service mysqld3309.service

vim mysqld3307.service

修改为:

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf

vim mysqld3308.service

修改为:

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf

vim mysqld3309.service

修改为:

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf

[root@db01 system]# grep "ExecStart" mysqld3309.service

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf

[root@db01 system]# grep "ExecStart" mysqld3308.service

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf

[root@db01 system]# grep "ExecStart" mysqld3307.service

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf

[root@db01 system]#

4.5 授权

chown -R mysql:mysql /data/*

4.6 启动

systemctl start mysqld3307.service

systemctl start mysqld3308.service

systemctl start mysqld3309.service

4.7 验证多实例

netstat -lnp|grep 330

MYSQL体系结构和管理-2_mysql_03

mysql -S /data/3307/mysql.sock -e "select @@server_id"

mysql -S /data/3308/mysql.sock -e "select @@server_id"

mysql -S /data/3309/mysql.sock -e "select @@server_id"

MYSQL体系结构和管理-2_配置文件_04


作者:​​岁月星空​

 

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。