mysql linux glibc版安装记录
本文以ubuntu18.04、mysql-8.0.16-linux-glibc2.12-x86_64为例
一. 下载mysql
下载安装包
wget -p /tmp https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
解压并移动至合适的文件夹
#创建文件夹并赋予权限
sudo mkdir -p /opt/enviroment/mysql
sudo chmod -R 777 /opt/enviroment/
#解压安装包并移动创建的目录
tar -xf /tmp/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
mv /tmp/mysql-8.0.16-linux-glibc2.12-x86_64 /opt/enviroment/mysql/
#创建一个链接目录
sudo ln -s /opt/enviroment/mysql/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
二. 安装
为mysql创建用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
安装
#初始化mysql数据库
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql
控制台可能会输出:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
如果报错则需要安装:libaio
#安装libaio
sudo apt-get install libaio-dev
不同发行版可能会报不同的错误,根据报错提示安装对应缺失的库即可。
再次执行初始化mysql的命令:mysqld --initialize --user=mysql,输出一下内容:
2019-06-27T12:49:06.532284Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2019-06-27T12:49:09.406373Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Oh=*DD!g&8AM
注意上面加粗的字体,即root用户的初始化密码
服务启动与停止
cd /usr/local/mysql/bin/
mysqld_safe --user=mysql &
#也可以这样启动服务
mysql.servr start
#停止服务
mysql.servr stop
三. 配置mysql
修改密码
登录进入mysql命令行客户端:
cd /usr/local/mysql/bin/
mysql -u root -p
#没有更改过密码时,键入初始化密码(注意每个人可能都不一样):Oh=*DD!g&8AM
执行如下sql:
--替换为自己的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
开启外网访问
登录进入mysql命令行客户端:
cd /usr/local/mysql/bin/
mysql -u root -p
进入客户端后执行如下SQL:
use mysql;
select user,host from user;
--设置任何ip可访问
update user set host='%' where user='root';
--刷新设置
flush privileges;
exit;
记录慢SQL
创建my.cnf文件
sudo mkdir /usr/local/mysql/etc
sudo vim /usr/local/mysql/etc/my.cnf
键入如下配置:
[mysqld]
#开启慢日志[0:ON,1:OFF]
slow_query_log = 1
#慢日志存放位置
slow_query_log_file = /usr/local/mysql/data/query-slow.log
#慢查询时间设置为1秒
long_query_time = 1
#优先用文件记录
log_output = 'FILE,TABLE'
#记录不走索引的SQL
#log_queries_not_using_indexes = 1
#最大连接数1000(老版本)
max_connections= 1000
#最大连接数1000(新版本)
mysqlx_max_connections = 1000
max_user_connections= 1000