MySQL安装、配置与优化

MySQL安装、配置与优化

企业项目实践课上,老师的要求,要求我们通过基于云服务器下的centOS安装MySQL,对MySQL进行配置和优化。一开始很懵,在对老师和其他前辈的经验进行吸收消化后,我略有了方向……

安装MySQL

参考大佬博客01
参考大佬博客02

我没有使用老师博客如【参考大佬博客01】中的方法直接在centOS里使用yum进行mysql的安装。而是使用【参考大佬博客02】中的方法。

首先打开MySQL官网选择安装包

在centOS中输入uname -a查看系统版本
点击这里选择适合自己系统版本的安装包MySQL安装、配置与优化

然后下载并解压上传

比如我的是el7.x86_64,我们选择Red Hat Enterprise Linux /Oracle Linux的安装包,选择下载上面的mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar这个压缩包,下载时选择No thanks, just start my download开始下载,不需要登录等操作。下载完成后将压缩包解压后通过Xftp软件上传至centos服务器上即可。
MySQL安装、配置与优化

安装设置

我们在安装mysql之前需要确认本机是否已经安装了mysql,使用命令rpm -qa | grep mysql查看是否已经安装了mysql,另外还需要使用rpm -qa|grep -i mariadb查看是否已经安装了Mariadb 的数据库版本。如果已安装的话,需要使用yum -y remove命令进行卸载。接下来我们安装依赖包,使用yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel安装。使用rpm -ivh 命令分别安装common、libs、server、client这四个包,注意common必须先安装,其次是libs
安装成功后使用service mysqld start命令去启动mysql服务

配置MySQL

参考大佬博客03

设置密码

安装成功后使用service mysqld start命令去启动mysql服务,此时会自动生成一个临时的密码,我们使用grep “A temporary password” /var/log/mysqld.log查看这个临时密码,[email protected]:后面的即为密码,我们将该密码复制用于登录,临时密码需要修改,否则将不能进行mysql的其他设置。使用mysql -u root -p 进行登录,然后输入上面复制的密码即可。
因为上面的密码是临时密码,使用该密码不能进行任何修改mysql的操作,因此我们需要修改mysql的密码,使用alter user user() identified by “123456”。 将密码设置为123456,由于密码太简单了,不符合密码检查策略要求,因此我们需要修改密码策略,validate_password.policy:密码策略,默认为MEDIUM策略,我们设置为0,validate_password.length:密码最少长度,我们设置为1。设置完成后需要重启服务,用mysql -u root -p 进行登录,然后使用新的密码即可。

配置远程访问

参考大佬博客04

一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:(已验证)
在本机先使用root用户登录mysql:
mysql -u root -p"youpassword"
进行授权操作:
mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘youpassword’ WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下:
在本机先使用root用户登录mysql:
mysql -u root -p"youpassword"
进行授权操作:
GRANT ALL PRIVILEGES ON . TO [email protected]“172.16.16.152” IDENTIFIED BY “youpassword” WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下:
在本机先使用root用户登录mysql:
mysql -u root -p"youpassword"
进行授权操作:
GRANT select,insert,update,delete ON . TO [email protected]“172.16.16.152” IDENTIFIED BY “youpassword”;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
四、删除用户授权,需要使用REVOKE命令,具体命令格式为:
REVOKE privileges ON 数据库[.表名] FROM user-name;
具体实例,先在本机登录mysql:
mysql -u root -p"youpassword"
进行授权操作:
GRANT select,insert,update,delete ON TEST-DB TO [email protected]“172.16.16.152” IDENTIFIED BY “youpassword”;
再进行删除授权操作:
REVOKE all on TEST-DB from test-user;
****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。
最后从用户表内清除用户:
DELETE FROM user WHERE user=“test-user”;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit

优化

参考大佬博客05