备注:因CentOS已经使用MariaDB替代了MySQL,如直接输入“yum install mysql-server”则安装MariaDB。
下载Mysql || 如何安装
安装MysQL 使用rmp包
- 先切到/tmp目录
1 | $ cd /tmp |
- 打开Mysql官网下载地址,在页面中找到对应版本的下载地址(本例中为mysql57-community-release-el7-11.noarch.rpm)
自己玩所以就用的官网最新版本,不太确认是否因为版本问题造成后续的麻烦;建议将对应版本文件名及MD5值记录或者截屏
- wget下载该rpm包 按回车键确定下载
1
$ wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
注意:mysql57-community-release-el7-11.noarch.rpm为上一步版本文件名。
- 下载完毕后生成MD5值并确保同官方网站上的MD5值(参考第3步)相同。 注意:建议运行此命令以确保文件无损坏。
1 | $ md5sum mysql57-community-release-el7-11.noarch.rpm |
- 既然我们已经验证文件没有损坏或更改,我们将安装该软件包并按回车键进行安装YUM源RPM安装包。
1 | $ sudo mysql57-community-release-el7-11.noarch.rpm |
- 这增加了两个新的MySQL yum存储库,我们现在可以使用它们来安装MySQL服务器:
1 | $ sudo yum install mysql-server |
注意:因上一步已添加新的YUM存储库,故可直接安装
- 输入“y”开始下载并安装MySQL
- 由于我们刚刚添加了软件包,因此我们也会提示我们接受其GPG密钥。按下y以下载并完成安装。
- 提示已经安装完毕。
启动MySQL
1 | ##输入systemctl start mysqld即可启动MySQL服务 |
1 |
|
配置MySQL
在安装过程中,会为MySQL root用户生成临时密码 在/var/log/mysqld.log文件中会自动生成一个随机的密码:(第一次获取临时密码,登录后必须更换密码)
1 | ##查看MySQL root用户临时密码(第一次获取临时密码,登录后必须更换密码) localhost: 后面部分 |
配置MySQL详细
MySQL包含一个安全脚本,用于更改远程root登录和示例用户等一些不太安全的默认选项。
使用此命令运行安全脚本。
1 | $ sudo mysql_secure_installation |
这将提示您输入默认的root密码。输入后,您将需要更改它。
输入一个包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符的新12个字符的密码。出现提示时重新输入。
您将收到有关新密码强度的反馈,然后会立即提示您再次更改密码。既然你做了,你可以自信地说No:
1 | Estimated strength of the password: 100 |
在我们拒绝再次更改密码的提示后,我们将按Y,然后按下ENTER所有后续问题以删除匿名用户,禁止远程root登录,删除测试数据库并访问它,并重新加载权限表。
现在我们已经确保安装,让我们测试一下。
第二种,直接使用默认密码
登录
1 | [root@jdu4e00u53f7 tmp]# mysql -uroot -p |
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
1 | mysql> select user(); |
修改密码
1 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lin747496'; |
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示
1 | mysql> ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. |
修改密码策略
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
1 | 首先,修改validate_password_policy参数的值 |
当然,前提是validate_password插件必须已经安装,MySQL5.7是默认安装的。
那么如何验证validate_password插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
1 | mysql> SHOW VARIABLES LIKE 'validate_password%'; |
通过msyql环境变量可以查看密码策略的相关信息:1
mysql> show variables like '%password%';
MySQL 额外的设置 CSDN资料
添加远程登录用户
1 | ##默认只需默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户 |
修改字符集编码 UTF-8
查看当前的字符编码
1 | mysql> show variables like 'char%' |
检测是否都是utf-8(filesystem除外),如果不是就得改,例如这个character_set_server一般是拉丁编码
修改编码
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置1
2
3
4
5
6
7
8
9
10
11//停数据库
systemctl stop mysqld
//进入 my.cnf 文件,一般是在etc路径下
vim /etc/my.cnf
//加入要修改的字符集 修改完:wq退出
在[mysqld]下追加:
character-set-server=utf8
//重启数据库
systemctl start mysqld
1 | ##启动 MySQL 服务: |