1、前置说明:
系统版本: ubuntu20.04LTS
MySQL版本: mysql-8.0.30-el7-x86_64.tar.gz
mysql依赖:libaio1_0.3.112-5_amd64.deb
安装位置: /usr/local
用户:root
2、服务端安装命令与参数配置:
cd /usr/local/
tar -zxvf ./mysql-8.0.30-el7-x86_64.tar.gz
mv ./mysql-8.0.30-el7-x86_64 /usr/local/mysql
cd /usr/local/mysql
mkdir data
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /usr/local/mysql/
vim /etc/my.cnf
粘贴如下配置并保存:(生产环境参数自己指定,特别是缓冲区大小等性能参数)
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=10000
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
socket=/var/lib/mysql/mysql.sock
user=root
performance_schema=on
performance_schema_max_table_instances=150
table_definition_cache=150
table_open_cache=64
innodb_buffer_pool_size=2M
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
接着继续执行指令:
mkdir /var/lib/mysql
/usr/local/mysql/bin/mysqld --initialize
报错: ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:进入libaio1_0.3.112-5_amd64.deb的存放目录,执行命令:
dpkg -i libaio1_0.3.112-5_amd64.deb
等待安装成功即可。
再次执行初始化指令/usr/local/mysql/bin/mysqld --initialize
成功后出现如下:
2022-11-01T06:58:01.731712Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /jyp0b=N2vMn (/jyp0b=N2vMn 这个是初始化的密码 第一次登录要用到 )
执行如下指令:vim /usr/local/mysql/support-files/mysql.server并找到mysqld_safe在其后添加--user=root
启动:/usr/local/mysql/support-files/mysql.server start
3、客户端配置与启动:
启动客户端:
/usr/local/mysql/bin/mysql -uroot -p
报错: /usr/local/mysql/bin/mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
修复:
cd /usr/lib/x86_64-linux-gnu
find ./ -name 'libncurses*'
ln -s libncurses.so.6.2 libncurses.so.5
再次启动:
/usr/local/mysql/bin/mysql -uroot -p
报错: /usr/local/mysql/bin/mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
修复:
cd /usr/lib/x86_64-linux-gnu
find ./ -name 'libtinfo*'
ln -s libtinfo.so.6.2 libtinfo.so.5
再次启动客户端:
/usr/local/mysql/bin/mysql -uroot -p
密码就是在服务器初始化生成的那个:本次是 /jyp0b=N2vMn
修改root密码与选择开启远程访问:
# 本地登录
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
flush privileges;
# 远程登陆
use mysql
update user set user.Host='%' where user.User='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#失败了就换小写
alter user 'root'@'%' identified with mysql_native_password by '密码';
flush privileges;
4、开机自启配置:
先使用kill命令杀死当前活跃的mysql的所有进程。
ps -ef | grep mysql
kill -9 pid
使用vim /etc/systemd/system/mysql.service命令在文本中粘贴如下命令:
[Unit]
Description=mysql
After=network.target
[Service]
Type=forking
Environment=TZ=Asia/Shanghai
WorkingDirectory=/usr/local/mysql
ExecStart=/usr/local/mysql/support-files/mysql.server start
PrivateTmp=true
[Install]
WantedBy=multi-user.target
开机自启:
systemctl daemon-reload
systemctl enable mysql.service
systemctl start mysql.service
systemctl status mysql.service