如果你还在寻寻觅觅CentOS上安装MySQL的教程而不得,那看到这里就不用转走了。
说实在的,我今天搞了一天了。
文章目录
下载MySQL
MySQL8.0.21 各版本下载地址:点这里
这个下拉框一拉,Fedora、Unbuntu什么的都有,反正就是找不到centOS是吧,然后网上就是一堆人说centOS默认支持mariaDB,反正我的Centos是没有。
搞这个:
可以直接在Linux系统下下载。
开始配置
先看看你的系统有没有MariaDB:
rpm -qa | grep mariadb
有的话会给你一个版本的回应,没有的话就没有了、
要是运气好,真的有,那就卸掉呗:rpm -e 版本号 --nodeps
建一个目录,叫mysql,放哪里你记得住就好。
然后把MySQL下载好的安装包拖到你的mysql目录下,可以用代码拖进去,也可以去文件管理器里面拖。
解压:tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar
别人的图,意思是相通的
通过 rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 common
通过 rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 libs
通过 rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 client
通过 rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 server
通过 rpm -qa | grep mysql 命令查看 mysql 的安装包
通过以下命令,完成对 mysql 数据库的初始化和相关配置
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码
通过 mysql -uroot -p 敲回车键进入数据库登陆界面
输入刚刚查到的密码,进行数据库的登陆,复制粘贴就行,MySQL 的登陆密码也是不显示的
通过 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’; 命令来修改密码
这下密码改成了 root
通过 exit; 命令退出 MySQL,然后通过新密码再次登陆
通过以下命令,进行远程访问的授权
添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户。
修改root用户远程访问权限:
选择 mysql 数据库:use mysql;
在 mysql 数据库的 user 表中查看当前 root 用户的相关信息:
select host, user from user;
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。
授权 root 用户的所有权限并设置远程访问
GRANT ALL ON *.* TO 'root'@'%';
如果报错:ERROR 1410 (42000): You are not allowed to create a user with GRANT
update user set host='%' where user ='root';
然后使用下面命令使修改生效:
flush privileges;
如有需要再执行之前授权报错的命令即可成功,最后同样使用flush privileges;命令刷新。
sqlyog链接时出现2058异常
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中password为自己修改的密码。然后SQLyog中重新连接,则可连接成功,OK。
如果报错:ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@'localhost’则使用下面命令:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';