cyhgogogo 2020-02-16
上篇中2G内存服务器安装sql server失败了,这里我尝试使用mysql进行数据存储,简单点,直接用yum命令安装(在CentOS下,可以直接通过yum命令来安装数据库);在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。
1、创建mysql下载及安装目录(/usr/local/mysql)
2、添加安装包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
3、安装/启动
#安装 sudo yum -y install mysql-community-server #启动服务 sudo systemctl start mysqld #查看版本信息 mysql -V
4、链接mysql并设置root密码
#1、查看MySQL为Root账号生成的临时密码 grep "A temporary password" /var/log/mysqld.log #2、进入MySQL shell mysql -u root -p #3、修改密码 ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘Mypwd123!‘;
5、开放端口(供远程链接mysql使用)
#开放端口 firewall-cmd --add-port=3306/tcp --permanent #重新加载防火墙设置 firewall-cmd --reload
报错,提示防火墙未运行,基于安全考虑,还是开启防火墙比较好;
①查看防火墙状态(systemctl status firewalld):目前是dead
②开启防火墙(systemctl start firewalld),关闭防火墙命令为:systemctl stop firewalld
开启之后再执行开放端口命令,开启成功之后,重新加载一次防火墙设置
6、创建数据库及为该数据库配置远程访问账号(mysql80版本后不允许grant在授权的时候隐式创建用户,必须先创建用户)
#新建本地用户 CREATE USER ‘test‘@‘localhost‘ IDENTIFIED BY ‘‘; #新建远程用户 CREATE USER ‘test‘@‘%‘ IDENTIFIED BY ‘‘; #新建数据库 CREATE DATABASE testdb; #赋予指定账户指定数据库远程访问权限 GRANT ALL PRIVILEGES ON testdb.* TO ‘test‘@‘%‘; #赋予指定账户对所有数据库远程访问权限 GRANT ALL PRIVILEGES ON *.* TO ‘test‘@‘%‘; #赋予指定账户对所有数据库本地访问权限 GRANT ALL PRIVILEGES ON *.* TO ‘test‘@‘localhost‘; #刷新权限 FLUSH PRIVILEGES;
7、使用新创建的用户(已授权远程访问的用户),navicat for mysql远程链接:
百度查找了下,出现这种情况的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,
那么直接修改登录用户的加密规则即可:
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;#修改加密规则 ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password‘; #更新一下用户的密码 FLUSH PRIVILEGES; #刷新权限
再次使用navicat链接,成功!
参考资料