若是你还在寻寻觅觅CentOS上安装MySQL的教程而不得,那看到这里就不用转走了。
说实在的,我今天搞了一天了。node
MySQL8.0.21 各版本下载地址:点这里mysql
这个下拉框一拉,Fedora、Unbuntu什么的都有,反正就是找不到centOS是吧,而后网上就是一堆人说centOS默认支持mariaDB,反正个人Centos是没有。web
搞这个:
sql
能够直接在Linux系统下下载。数据库
先看看你的系统有没有MariaDB:svg
rpm -qa | grep mariadb
有的话会给你一个版本的回应,没有的话就没有了、spa
要是运气好,真的有,那就卸掉呗:rpm -e 版本号 --nodepscode
建一个目录,叫mysql,放哪里你记得住就好。
而后把MySQL下载好的安装包拖到你的mysql目录下,能够用代码拖进去,也能够去文件管理器里面拖。server
解压:tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar
别人的图,意思是相通的
xml
经过 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';