Ubuntu20.04之MySQL 8.0安装

214 阅读2分钟

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

image.png 修改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

image.png