今天用centos7安装mysql遇到了很奇怪的问题,如下图所示:
查了n多资料才发现,在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。以下是查找的网上的资料,然后根据自己的理解所写,如有不对请指出!
-
首先要自己先下载repo源文件,好像可以在linux直接下载,我是选择在Windows下载好再传到Linux。
repo源下载的网址:https://dev.mysql.com/downloads/repo/yum/
选择下载linux对应的版本号即可。
-
下载到本地后,用xShell上传到linux,上传到某个目录。比如:/opt。
然后使用命令:
yum install /opt/mysql80-community-release-el7-3.noarch.rpm 来进行安装。
-
继续安装,yum会直接安装配置所启用的版本,所以不需要另行配置。
yum install mysql-community-server
-
由于mysql8使用了caching-sha2-password的新密码认证,可能会无法进行远程管理连接或者应用程序无法连接,这种情况需要修改为旧的mysql5认证(即mysql_native_password模式 ),MySQL的配置文件默认在/etc目录下
vi /etc/my.cnf 打开VI编辑器,使用快捷键 i 进入编辑模式,找到下面这一行,然后取消注释。:
# default-authentication-plugin=mysql_native_password
-
输入 systemctl restart mysqld 重启动mysql服务
-
对于mysql来说,将在启动时自动生成一个默认密码,密码保存于/var/log/mysqld.log 的日志文件中。查阅使用
cat /var/log/mysqld.log
-
输入 mysql -uroot -p回车,输入上图的默认密码,回车进入到mysql命令行环境。
-
mysql8 要求必须修改root用户密码后才可以继续使用,那么,我们使用:
默认策略下,您的密码必须设置为有大小写字母+标点+数字,且必须大于等于8个长度
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
如果您在开发过程中,不需要这么高的策略,可以使用如下:
mysql> set global validate_password.policy=0; #修改安全策略级别为 低
mysql> set global validate_password.length=4; #修改密码最小长度为 4
mysql> flush privileges; #刷新策略表,修改完密码后再执行这句
-
开启远程网络访问权限
网上说还有grant方式,我看的博主说用grant没有成功,我试了下也没成功,才使用的这个,不知道对不对。
use mysql; update user set host="%" where user='root';
-
如果远程客户端无法连接 ,尝试使用下面指令关闭防火墙和selinux并重启操作系统:
shell> systemctl disable firewalld
shell> sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- mysql常用命令
[root@localhost ~]# systemctl start mysqld.service #开启服务
[root@localhost ~]# systemctl stop mysqld.service #关闭服务
[root@localhost ~]# systemctl status mysqld.service #查看服务状态
[root@localhost ~]# mysql -u root -p #进入mysql命令窗口
mysql> show databases; #查看所有数据库
mysql> use 数据库名; #使用该数据进行编辑
mysql> show tables; #查看某数据库所有表