Linux-Ubuntu下MYSQL数据库的安装和后续参数配置
1.MYSQL的Linux安装
sudo apt-get install mysql-server //服务端
sudo apt-get install mysql-client //客户端
sudo apt-get install libmysqlclient-dev //程序编译时链接的库
中间会提示设置root账号密码,若没有提示,则看下文登录
安装完成后,利用如下命令查看状态
dpkg -l | grep mysql
启动
service mysql start
登录
mysql -u root -p
2.MYSQL的root密码设置
(1)若没有设置root密码则:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
在这个配置文件最后添加一个skip-grant-tables
重新登录sudo
mysql;或者mysql -uroot -p
(2)登录成功进行修改root密码:
use mysql;
MySQL5.7版本后:
update user set authentication_string=password("您要修改的密码") where user="root";
刷新权限:
flush privileges;
重启MYSQL服务
systemctl restart mysql.service
3.配置远程连接
mysql -u root -p
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '远程登录密码' WITH GRANT OPTION;
Exit退出后,对系统文件再进行修改
路径:/etc/mysql/mysql.conf.d/mysql.cnf
或:
vi /etc/mysql/mysql.conf.d/mysqld.cnf
把cnf文件中的bind-address进行注释
4.增加MYSQL的最大连接数
mysql -u root -p
use mysql;
查看当前mysql支持的最大连接数(默认为151):
show variables like 'max_connections';
查看目前的连接数:
show status like '%thread%';
(1)开始进行最大连接数修改:
vi /etc/mysql/my.cnf
在此文件最后新增:
[mysqld]
max_connections = 9999 --mysl最大连接数
table_open_cache = 1024 --同时打开表的数量(选填)
open_files_limit = 65535 --允许打开的文件数(选填)
mp_table_size = 128M --临时表128M时转移到磁盘上(选填)
(2)更改mysql.service
打开mysql.service:
cd /lib/systemd/system
vi mysql.service
在文件结尾中新增:
LimitNOFILE=infinity
LimitMEMLOCK=infinity
新增后重启MYSQL服务,再进行最大链接数量查看
systemctl daemon-reload
systemctl restart mysql.service
5.增加主机的进程数,防止1135错误
Ubuntu系统上对于systemd的资源控制,其中默认参数为 #DefaultTasksMax=512,限制MySQL打开进程数最大512 ,因此需要修改增加:
service mysql status
可以查看当前的Task和限制的数量,默认是限制512
vi /etc/systemd/system.conf
修改DefaultTasksMax的值为65535,后面的值可根据需要修改,修改后:执行:
systemctl daemon-reload
重新执行:
service mysql status
发现支持的进程数量已经提升
对于Centos系统会限制的地方在/etc/security/limits.d/下面.
6.增加主机的Threads_cached
#分别在mysql中执行
show global status like '%threads%';
show variables like '%conne%';
MYSQL线程缓存未命中率=Threads_created /Connections
这个数值越小越好,因此可以通过设置 thread_cache_size的大小来监测该数值大小
查看 thread_cache_size的设置值
show global variables like 'thread_cache_size';
6.1 临时设置,重启MYSQL后失效
set global thread_cache_size = 1000;
6.2 永久设置
修改MySQL 配置文件/etc/mysql/ my.cnf
[mysqld]
thread_cache_size = 1000
修改后重启MYSQL即可。
7. 推荐设置定时脚本
#!/bin/bash
echo "Connect mysql..."
mysql -h 127.0.0.1 -P 3306 -u root -p<您的密码> <<EOF
use mysql;
flush hosts;
#use sitesMonitor;
set global max_connect_errors = 9000;
set global wait_timeout=100;
set global interactive_timeout=100;
set global thread_cache_size=1000;
show global variables like '%max_connect_errors%';
show variables like 'thread_cache_size';
show status like 'thread%';
#show tables;
exit
EOF
echo "Connect succes!"
对于某些机器无设置权限,可以配置定时任务,执行该脚本手动设置。
8.参考文档
https://blog.csdn.net/qq_42956179/article/details/107285977
https://blog.csdn.net/liangkaiping0525/article/details/88868365
https://blog.csdn.net/weixin_39922154/article/details/90666155
https://blog.csdn.net/qq_43627907/article/details/124781497
https://blog.csdn.net/weixin_45662754/article/details/126558102
https://blog.csdn.net/gettogetto/article/details/54565366
https://blog.51cto.com/u_15060546/2650694
https://www.jianshu.com/p/47adb747652d
https://blog.csdn.net/xiaohai798/article/details/114025104