一、my.cnf启动文件(配置选项)
1、propmt=’\u@\h[\d]>'定义client、mysql的登录的显示内容,user@localhost[dbname]>
2、mysqld读取my.cnf的mysqld的选项组,也可以都server、mysql-8.0的选项组
3、客户端工具,mysql、mysqladmin、mysqlbackup、mysqldump读client选项组
4、默认的选项文件为:/et/my.cnf
可以通过一下选项,指定选项文件
–defaults-file:指定选项文件
例如:mysql --defaults-file=/etc/my.cnf
一般默认为/etc/my.cnf,可以不加–defaults-file
–no-defauts:不读任何选项文件,所有选项需要在命令行进行指定。
–defaults-extra-file:除了默认的选项文件,还需要读这个文件。
5、列出 所有备读到的选项组内容
mysql_print_defaults mysql client
password内容屏蔽
等价命令 mysql --print-defaults mysql client
6、.mylogin.cnf文件:二进制,加密,位于当前操作系统用户的home目录,用来指定与mysql登录有关的选项。
user
password
port
socket
mysql_config_editor命令用于为维护.mylogin.cnf
mysql_config_editor print显示.mylogin.cnf文件内容
mysql_config_editor set用户设置文件所有内容,也可只删除指定的选项组
mysql_config_editor remove用户删除.mylogin.cnf
登录 mysql mysql --login-path=client 读mylogin.cnf选项组
二、配置参数变量(variables)
用在服务器端,用于对服务器进行设置
与启动选项区别和联系
相同点:可以在命令行中指定,在选项文件中指定。
不同点:
选项:任何可执行文件都有选项,client、mysqld、server
选项可以没有key值(有些有值,有些没值)、在命令的一次执行范围内,选项不可改变。
变量:
用在服务器端,用来对服务器进行设置
所有变量都有值,未设置时采用默认值
变量可以动态修改的。
作用范围:
global:针对整个mysqld生效。
session:针对当前的session生效。
变量的view
mysql --help
列出选项和变量
mysql>show variables;(显示所有变量)
show variables like ‘变量名称’
select @@global.autocommit;(全局)
select @@session.autocommit;(当前session)
show global variables like ‘autocommit’;
show session variables like ‘autocommit’;
变量的设置
set命令
动态变量:set可修改
静态变量(read_only)
set global 变量=key
set session 变量=key
变量的设置:
(1)global变量: max_connections
在一个会话中修改之后,在其他会话中都可以看到修改结果。所有会话都生效。
(2)有些变量既有global作用范围,又有session作用范围
例如:autocommit、sql_mode,wait_timeout
set global autocommit=0(修改结果在新session中生效,在现存会话不生效)
set session wait_timeout=30000;修改结果仅在当前会话中生效。
(3)有些变量只有session作用范围,例如:sql_log_bin
静态变量只能在选项文件中修改,涉及修改后重启MySQL生效。
变量的持久性
通过set命令修改的变量仅针对mysqld的本次启动生效
解决办法:
(1)把变量放到选项文件中。
(2)执行命令set persist 变量=key,修改结果被写入文件。修改结果写入mysqld-auto.cnf中,JSON格式,仅针对具有global的变量生效,修改文件中变量值为default,起到取消的效果。
mysqladmin工具:用于管理mysqld的服务,格式:
mysqladmin选项,子命令status(运行状态),其他同mysql工具。ping(测试mysqld的状态);shutdown,version、create、drop。
附录:
普通用户启动/关闭mysqld服务
1)rpm安装
root用户启动/关闭mysqld。
(1)解锁mysql用户。
systemctl stop mysqld
usermod -d /home/mysql -s /bin/bash mysql
passwd mysql
mkdir /home/mysql
chown mysql:mysql /home/mysql
(2)用mysql用户登录操作系统并启动MySQL
mysqld -defaults-file=/etc/my.cnf
mysqladmin -u -p ping
mysqladmin -u -p shutdown
mysqladmin -u -p status
rpm安装的弊端
1)处于安全考虑,生产系统不允许安装rpm格式
2)mysqld的启动和关闭需要用root用户
mysqld_multi:适合二进制方式安装的ySQL
1、配置第一个mysqld服务
[mysqld_multi]
mysqld=
mysqladmin=
user=
password=
多个实例需要创建相同的用户,密码也一致,并给与用户shutdown权限。
启动
mysqld_multi --defaults-file=/mysql80/mysqld.cnf start 1,2,3
查看状态
mysqld_multi --defaults-file=/mysql80/mysqld.cnf report 1,2,3
关闭
mysqld_multi --defaults-file=/mysql80/mysqld.cnf stop 1,2,3




