写在前面

最近在自己的老机器上面装了个虚拟机CentOS 8, 局域网内都可以ssh上去,方便学习。最近又需要用到MySQL了,配置一遍下来又踩了好多坑,先记录一下,大家也可以参考参考。适用于MySQL5.7之后的版本。

之前直接在Windows上面装,可以看我另一篇文章:
免安装版MySQL5.7配置过程(Windows环境)

创建mysql用户和组

> sudo groupadd mysql
> sudo useradd mysql -g mysql

配置目录和文件

  • tar包解压位置:/opt/application/mysql-5.7.30
  • MySQL数据存放位置:/data/mysql/data
目录权限修改
> sudo chown -R mysql:mysql /opt/application/mysql-5.7.30
> sudo chown -R mysql:mysql /data/mysql
my.cnf
[mysqld]
character-set-server=utf8
#绑定IPv4和3306端口
bind-address = 0.0.0.0
port = 3306
# 设置mysql的安装目录
basedir=/opt/application/mysql-5.7.30
# 设置mysql数据库的数据的存放目录
datadir=/data/mysql/data
# 允许最大连接数
max_connections=200
# skip_grant_tables
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysql_safe]
default-character-set=utf8
[client]
default-character-set=utf8
设置环境变量
> sudo vim /etc/profile

文件最后加上:

PATH=$PATH:/opt/application/mysql-5.7.30/bin
export PATH

更新环境变量:

> source /etc/profile

这样就可以任意路径下都能执行mysql命令了

初始化数据库

[ligoudan@localhost mysql-5.7.30]$ ./mysql-5.7.30/bin/mysqld --initialize --user=mysql

记下最后一行临时密码

[Note] A temporary password is generated for root@localhost: !2scz,CdaYqh

启动数据库服务

> sudo cp /opt/application/mysql-5.7.30/support-files/mysql.server /etc/init.d/mysqld
> sudo systemctl enable mysqld
> sudo service mysqld start

注意:my.cnf一定要放在/etc下面,否则启动服务会有问题

登录数据库

> mysql -uroot -p

结果报错:

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

这里解决花了很长直接,最终建议直接一步到位通配符安装依赖:

> sudo yum install libncurses* -y
修改默认密码
mysql> alter user user() identified by "你的密码";
创建其他用户并授权
mysql> CREATE USER ligoudan identify BY '你的密码';
mysql> GRANT all ON *.* TO 'ligoudan'@'%';

done.