写在前面
最近在自己的老机器上面装了个虚拟机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.