前置准备
VMware16安装的Linux虚拟机,镜像文件版本CentOS7。
1.确认当前的系统版本
在终端中输入命令,查看系统版本。
命令:cat /etc/redhat-release
或 命令:cat /etc/os-release
当前版本为7.9。
2.添加 MySQL Yum 源
2.1.访问 MySQL 开发者社区并下载安装包。
网址:https://dev.mysql.com/downloads/repo/yum/
因为版本是7.9,于是下载图中的版本的安装包。
2.2.创建 mysql 的安装目录
在 /usr/local/ 目录下创建 mysql 文件夹。
命令:mkdir /usr/local/mysql
2.3.上传到 Linux 的目录下并进行安装
使用 FinalShell 进行连接并上传到该目录下。
有关 FinalShell 的安装和简单使用可以查看该链接:Linux安装JDK和环境变量配置,FinalShell的简单使用https://blog.csdn.net/MostHandsomeLi/article/details/143714003?spm=1001.2014.3001.5501
切换到 /usr/local/mysql 的目录下。
命令:cd /usr/local/mysql/
通过命令 ls 查看是否上传成功。
安装命令:sudo yum -y install mysql84-community-release-el7-1.noarch.rpm
通过命令检查是否已经成功添加 MySQL Yum 源:
命令:yum repolist enabled | grep mysql.*-community
安装成功。
注:若输入命令:yum repolist enabled | grep mysql.*-community 后出现如下报错。
则需使用阿里云或其他国内镜像源。直接下载最新的 CentOS-Base.repo 文件。
对于 CentOS 7。
命令:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
再次输入命令:yum repolist enabled | grep mysql.*-community 即可。
对于 CentOS 5。
命令:curl -o /etc/yum.reops.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
对于 CentOS 6。
命令:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
3.安装 MySQL
命令:sudo yum install -y mysql-community-server
该命令将安装 MySQL 服务器包以及运行服务器所需的组件,包括:客户端包,客户端和服务器常见错误消息,和字符集共享客户端库。
3.1.启动 MySQL 服务器
命令:systemctl start mysqld
3.2.查看服务器状态
命令:systemctl status mysqld
3.3.设置开机自启动
命令:systemctl enable mysqld
查看是否加入到自启动列表中
命令:systemctl list-unit-files | grep mysqld
3.4.登录 MySQL
首次安装成功,MySQL 把 root 用户的默认密码存在错误日志中,此时的密码为随机字符串,可通过命令查看密码。
命令:grep 'temporary password' /var/log/mysqld.log
密码:)B=s/cszp3oE
使用该密码进行登录。
命令:mysql -uroot -p
回车,输入密码时密码不显示。
登录成功。
3.5.修改密码
命令:alter user 'root'@'localhost' identified by '要修改的密码';
第一次修改时先使用默认密码。
输入命令来查看当前密码策略。
命令:SHOW VARIABLES LIKE 'validate_password%';
图中 validate_password.length 为密码最小长度,默认值为8,可按照需要更改最小密码长度。
命令:SET GLOBAL validate_password.length = 8;
图中 validate_password.mixed_case_count 为密码中英文字母的大小写的要求,默认值为1,可按照需要增加或减少字母大小写的要求。
命令:SET GLOBAL validate_password.mixed_case_count = 1;
图中 validate_password.number_count 为密码中的数字要求,默认值为1,可按照需要增加或减少数字要求。
命令:SET GLOBAL validate_password.number_count = 1;
图中 validate_password.policy 为密码策略,默认值为 MEDIUM,可设置为 LOW, MEDIUM, STRONG 或自定义。
命令:SET GLOBAL validate_password.policy = LOW;
图中 validate_password.special_char_count 为密码中特殊字符的要求,默认值为1,可按照需要增加或减少特殊字符要求。
命令:SET GLOBAL validate_password.special_char_count = 1;
修改配置文件来使修改的密码策略永久生效。
输入命令 exit,退出 MySQL 服务,输入命令打开 MySQL 的配置文件,在目录 /etc/my.cnf 下,添加如下内容。
命令:vi /etc/my.cnf
validate_password.length=4
validate_password.mixed_case_count=1
validate_password.number_count=1
validate_password.policy=LOW
validate_password.special_char_count=1
3.6.重启 MySQL 服务
命令:sudo systemctl restart mysqld
4.远程用 Navicat 基于 MySQL 协议连接
打开 Navicat 新建连接。虚拟机 IP 地址是和 FinalShell 连接一样的。账号密码是在安装 MySQL 时默认的。点击“测试连接”。
关于 MySQL 的安装可点击查看:
4.1.连接报错的解决办法
若出现下图的报错:
可能是因为默认账号的权限不够,不支持远程连接。查看权限方法如下:
启动 MySQL 的命令:systemctl start mysqld
登录 MySQL 的命令:mysql -uroot -p
查看权限步骤一:
查看数据库,命令:show databases;
进入 'mysql' 库,命令:use mysql;
查看用户权限,命令:select user, host from user;
查看权限步骤二:
命令:select user, host from mysql.user;
图中默认的四个用户均只能本地登录(localhost),不允许远程登录。
4.2.方法一,新增一个用户并赋予远程连接权限
新增用户。
命令:create user 'username'@'%' identified by 'password';
其中 username 和 password 是用户自定义的用户名和密码。
例如创建一个用户名为 test1 密码为 123!ABcd 的用户。
设置权限。
命令:grant all privileges on *.* to 'username'@'%';
其中 username 同上。
刷新权限。
命令:flush privileges;
查看用户是否新增成功。
命令:select user, host from user;
新增成功。
4.3.方法二,修改现有的用户远程连接权限
修改 root 用户的 host。
命令:update user set host='%' where user='root' and host='localhost';
设置权限。
命令:grant all privileges on *.* to 'root'@'%';
刷新权限。
命令:flush privileges;
检查用户是否修改成功。
命令:select user, host from user;
4.4.再次进行连接
再次尝试连接。若已新增了用户,用户名和密码填新增用户的。若修改了已有的用户权限,用户名和密码填 root (为例)的。
若出现下图中的报错:
退出并关闭 Navicat 软件。
退出 MySQL。命令:exit
重启 MySQL 服务。
命令:sudo systemctl restart mysqld
再次打开 Navicat 进行连接。
连接成功。