mysql安装读取配置文件顺序 参数替换 后面文件相同的参数会替换前面文件的参数
[root@my1 ~]# mysql --help --verbose | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
------------------
5.7安装文档官方
https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
注意初始化的时候要使用解压后的tar包文件中的mysqld执行,否则可能会调用其他版本的mysqld
bin/mysql_ssl_rsa_setup:执行完此命令后需要增加 数据文件中 server-key.pem 的读取权限
-------------------
查看初始密码
sudo grep 'temporary password' error_log文件位置
--------------------
修改开机启动
将文件移动cp support-files/mysql.server /etc/init.d/mysql.server
使用chkconfig --add mysql 添加启动
---------------------------
链接时增加参数
--prompt="(\u@\h) [\d]> "
可以提示使用的ip和数据库
-----------------
配置免密登录my.cnf 直接输入mysql
[client]
user=root
password=123456
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
[mysqld]
port = 3308
user = mysql
datadir = /my_mysql/mysql5.7
log_error = error.log
------------------
查看配置参数 '' 中间增加参数名
show [global 全局变量] variables like 'log_error%'
----------忘记密码操作 需要修改数据库表数据
在my.cnf配置文件【mysqld】中增加skip-grant-tables 重启服务
use mysql
select user,host,authentication_string from user;
update user set authentication_string = password('123456') where user='root' andhost='localhost';
flush privieges;
------------查看数据库系统参数表中配置
use performance_schema
show tables like '%variables%'
-----------------------------
权限控制
查看权限
show grants for 'xiaolong'@'%'
增加权限
grant insert,select,delete,update on *.* to 'xiaolong'@'%' identified by '123456' --如果跟了密码,当没有用户时会创建用户,已有用户不需要跟密码,如果跟了 with grant option 说明可以将自己拥有权限给其他用户
移除权限但不删除用户
revoke insert on *.* from 'xiaolong'@'%'
---------------
5.7版本后默认使用ssl 安全套接字连接
---------------
多实例安装 一定要验证所有路径的权限!!!!! 配置好my.cnf 后执行初始化语句 mysqld --initialize-insercure --datadir=/my_mysql/mysql5.7_2
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
[mysqld]
server-id = 1
port = 3308
user = mysql
datadir = /my_mysql/mysql5.7
log_error = error.log
socket = /temp/mysql.sock1
#字符集设置utf8不能存类似手机符号表情的字符,所以使用utf8mb4
character_set_server=utf8mb4
#设置默认的排序查询占用内存
sort_buffer_size = 64M
#跳过密码登陆
#skip-grant-tables
#默认密码过期时间
#default_password_liftime=0
#慢查询日志设置------
slow_query_log = 1
slow_query_log_file = slow.log
#慢查询超过时间/s
long_query_time =2
#最小查询到的行数 小于一百不显示在log日志中
min_examined_row_limit =100
#未使用索引的查询
log_queries-not-using-indexes
#限制每分钟未使用索引记录的次数
log_throttle_queries_not_using_indexes = 10
[mysqld_multi]
#启动mysql使用的命令
mysqld = /usr/local/mysql/bin/mysqld_safe
#关闭mysql使用的命令
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /usr/local/mysql/bin/mysqld_multi.log
[mysqld2]
server-id = 2
port = 3309
user = mysql
datadir = /my_mysql/mysql5.7_2
socket = /temp/mysql.sock2
[mysqld3]
server-id = 3
port = 3310
user = mysql
datadir = /my_mysql/mysql5.7_3
socket = /temp/mysql.sock3
#不同版本需要修改datadir 数据目录位置
[mysqld4]
server-id = 4
port = 3311
user = mysql
datadir = /my_mysql/mysql8.0
socket = /temp/mysql.sock4
----------------使用mysqld 和 mysqld_safe 启动区别
safe 启动相当于脚本启动,可以修改脚本,并且自动监测mysqld是否启动,会自动拉起关闭的进程。
-------------------进程关闭
kill属于安全正常的关闭,不需要密码也能关闭mysql
---------------慢查询日志
慢查询日志:
[mysqld]
#慢查询日志设置------
slow_query_log = 1
slow_query_log_file = slow.log
#慢查询超过时间/s
long_query_time =2
#最小查询到的行数 小于一百不显示在log日志中
min_examined_row_limit =100
#未使用索引的查询
log_queries-not-using-indexes
#限制每分钟未使用索引记录的次数
log_throttle_queries_not_using_indexes = 10
-------------------------------通用日志
一般不开启,因为会记录所有操作,会导致性能下降严重百分之五十左右,但是银行需要用来审计需要全部记录,互联网行业一般不开启
[mysqld]
general_log = 0
general_log_file = general.log