MySQL的启动管理与配置文件

摘要:
MySQL的启动管理与配置文件启动关闭多实例配置配置文件配置文件管理mysqld_safe参数欢迎来到来到大浪涛天的博客!
MySQL的启动管理与配置文件
启动关闭多实例配置配置文件配置文件管理mysqld_safe参数

欢迎来到 来到大浪涛天的博客

1. MySQL的启动和关闭

1-1. 日常启停

Centos6启动模式:mysql.server start ---> mysqld_safe ---> mysqld 
Centos7启动模式:mysql.service      ---> mysqld 

但是两种启动模式都是依赖于配置文件/etc/my.cnf,如果我们想临时启用某些参数而不用频繁去更改配置文件则可以把数据库启动到维护模式的状态下,如:

  1. 维护性的任务
mysqld_safe --skip-grant-tables --skip-networking &

我们一般会将我们需要的参数临时加到命令行,也会读取/etc/my.cnf的内容,但是如果冲突,命令行优先级最高
2. 正常启动和正常关闭数据库

[root@db01 ~]# mysqld_safe &
[root@db01 ~]# mysqladmin -uroot -p123 shutdown 

1-2. 初始化配置

1-2-1. 作用

(1)影响数据库的启动
(2)影响到客户端的功能

1-2-2. 初始化配置的方法

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

1-2-3. 初始化配置文件的书写格式

[标签]
xxx=xxx
[标签]
xxx=xxx

1-2-4. 配置文件标签的归类

服务器端:
[mysqld]
[mysqld_safe]
[server]

客户端: 
[mysql]
[mysqladmin]
[mysqldump]
[client]

1-2-5. 配置文件设置样板(5.7)

#服务器端配置
[mysqld]
#用户
user=mysql   
#软件安装目录                
basedir=/application/mysql  
#数据路径
datadir=/data/mysql/data 
#socket文件位置
socket=/tmp/mysql.sock
#服务器id号
server_id=6
#短口号
port=3306
#客户端配置
[mysql]
#socket文件位置
socket=/tmp/mysql.sock

1-2-6. 配置文件读取顺序

最后面的一个优先级最高,如果后面的配置和前面的配置冲突,则以后面的配置为准。

[root@db01 ~]# mysqld --help --verbose |grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 

1-2-7. 强制使用自定义配置文件

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

1-3. MySQL的连接管理

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

2. 多实例管理

2-1. 准备多个目录

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

2-2. 准备配置文件

cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=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
log_error=/data/3308/mysql.log
port=3308
server_id=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
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF

2-3. 授权

chown -R mysql.mysql /data/*

2-4. 初始化三套数据

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

2-5. 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]# 

2-6. 启动

systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service

2-7. 验证多实例

netstat -lnp|grep 330
mysql -S /data/3307/mysql.sock 
mysql -S /data/3308/mysql.sock 
mysql -S /data/3309/mysql.sock 

免责声明:文章转载自《MySQL的启动管理与配置文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ZooKeeper(3)-内部原理基于NodeJs的网页爬虫的构建(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ORM操作mysql

创建表和添加数据import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.o...

存储过程中SELECT INTO的使用

在MySQL存储过程中使用SELECT …INTO语句为变量赋值:   用来将查询返回的一行的各个列值保存到局部变量中。 要求:   查询的结果集中只能有1行。 SELECT col_name[,...] INTO var_name[,...] table_expr 使用SELECT …INTO语句在数据库中进行查询,并将得到的结果赋值给变量。   ①co...

MySQL结果集 数据查询(重点)

如下: SELECT * FROM product;-- 查询所有列 SELECT pro_id,pro_name FROM product;-- 查询指定列 SELECT pro_name AS '产品名称',price FROM product;-- 添加常量列 把pro_id改为“产品名称”(添加常量列只是显示这个名称,查询后还是...

mysql之面试问题总结

问题1、char 与varchar的区别?        varchar是变长而char的长度是固定的。如果你的内容是固定的大小,char性能更好。       char[4] 与varchar[4]   存储字母a a占一个字符  varchar长度为4但是占此时为一个字符长度   而char则占4个字符 问题2、truncate 和delete 区别是...

通过docker搭建LNMP平台(以wordpress为例)

1.创建自定义网络 docker network create lnmp #创建自定义网络 docker network ls #查看 2.创建mysql数据库容器 docker run -itd --name lnmp_mysql --net lnmp -p 3306:3306 --mount src=mysql-...

MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.

转自:https://blog.csdn.net/zhaoqi5705/article/details/12087649?locationNum=15 MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hos...