原 centos 8下安装mysql 数据库
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1020
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:
/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.reposudo yum install mysql-server
根据提示安装就可以了,不过安装完成后没有密码,需要重置密码
mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
原因:是/var/lib/mysql的访问权限问题。
解决办法:用下面的命令把/var/lib/mysql的拥有者改为当前用户:
sudo chown -R root:root /var/lib/mysql
service mysqld restart
发现没有成功,我们查看 /var/log/mysql/mysqld.log 的日志。错误信息如下。
2020-12-01T13:52:39.702194Z 0 [System] [MY-013169] [Server] /usr/libexec/mysqld (mysqld 8.0.21) initializing of server in progress as process 64815
2020-12-01T13:52:39.703383Z 0 [ERROR] [MY-010460] [Server] --initialize specified but the data directory exists and is not writable. Aborting.
2020-12-01T13:52:39.703404Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2020-12-01T13:52:39.703459Z 0 [ERROR] [MY-010119] [Server] Aborting
我们看下里面很关键的一行日志。
initialize specified but the data directory exists and is not writable. Aborting.
意思是说,我们对 /var/lib/mysql 目录的权限不够,现在是755,我们更改为777
执行命令如下:
chmod -R 777 /var/lib/mysql
mysql -u root
选择mysql数据库。
use mysql;
注意:
1)mysql 5.7 及之前版本修改密码的sql为
update user set password=password('Zhang123456') where user='root';
2)mysql 5.7 以后版本修改密码的sql为
update user set authentication_string='Zhang123456' where user='root';
备注:mysql 5.7 以后废弃了password字段和password()函数,采用authentication_string字段表示密码。
我们这里安装的是mysql 8.0.21版本,所以执行命令
update user set authentication_string='Zhang123456' where user='root';
备注:密码尽量采用大小写加数字的形式。
报错如下图所示:
解决方法:登陆Xshell客户端。使用命令
mysql -u root
授权:
1)mysql 8之前的版本写法为:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Zhang123456' WITH GRANT OPTION;
2)mysql 8 及以后的版本写法为:
create user root@'%' identified by 'Zhang123456';
grant all privileges on *.* to root@'%' with grant option;
刷新mysql
FLUSH PRIVILEGES;
再次连接就可以了。
注意:设置密码后,再次连接要使用命令,p 代码password
mysql -u root -p
出现这个错误可能是在阿里云里面没有设置安全规则或没有开放3306端口。
设置如下:
找到安全组。
配置规则。
添加安全规则。
2019-08-09 22:03:56 阅读(2611)
名师出品,必属精品 https://www.91mszl.com
博主信息