1. 说明
之前在Linux(虚拟机)上安装MySQL8时花了挺长时间,也遇到挺多问题,于是想记录一下具体安装步骤,以供下次安装参考。本文的MySQL压缩包是mysql-8.0.19-linux-glibc2.12-x86_64.tar。
2. 具体步骤
1、在/usr/local下解压压缩包,并把文件夹改名为mysql
# 解压
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar
# 改名
mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
2、改名后,进入mysql文件夹,创建新文件夹,命名为data
mkdir data
3、创建用户和组,并改变mysql目录的拥有者
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
4、修改/etc/my.cnf文件,若无则手动创建
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
5、进入/usr/local/mysql/bin,初始化数据库,并保存好临时密码
./mysqld --initialize --user=mysql
6、后台启动MySQL
./mysqld --user=mysql &
7、使用临时密码登录
./mysql -uroot -p
这一步可能会报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方案:给自动生成的mysql.sock建立一个软链接
ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock
8、登录后,修改密码
alter user `root`@`localhost` identified by '123456';
9、创建用户并修改权限,以便在其它机器进行访问
create user `root`@`%` identified by '123456';
-- 给在localhost登录的root用户开放权限
grant all privileges on *.* to `root`@`localhost`;
-- 给在任意机器登录的root用户开放权限
grant all privileges on *.* to `root`@`%`;
flush privileges;
10、给防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent