[目录]

4.Mysql数据库的安装与配置

CentOS7的yum源中默认好像是没有mysql的,所有我们采用从官方下载的方式进行安装。

为了节省时间,下面的步骤参考网络上的教程,根据最新情况进行了修改。

①卸载Mariadb

1)查看mariadb数据库:

rpm -qa | grep mariadb

2)卸载mariadb数据库:

rpm -e --nodeps mariadb文件名

3)删除etc目录下的my.cnf文件:

rm /etc/my.cnf 如果提示没有该文件,忽略该提示,是因为步骤2中已经自动删除,此操作为了防止残留。

②下载5.7的mysql

打开5.7版本的下载链接,最新的版本为5.7.28,https://dev.mysql.com/downloads/mysql/5.7.html#downloads,系统选择Red Hat Enterprise版本即可,选择bundle捆绑包进行下载。

或者直接使用下面的命令:

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

③解压

将下载的mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar包复制到指定目录,进入该目录后解压包。

tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar # 解压文件,解压出一系列rpm 文件

④安装rpm包

按照指定顺序安装rpm包,这几个文件是存在依赖关系的,所以在安装时有对应的优先级,需要按顺序安装:

rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.28-1.el7.x86_64.rpm

所以之前不下载总包,只下载下面这几个包应该也行。

Tips:我实际按照此步骤操作时,安装server会失败,提示:libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.28-1.el7.x86_64

这里需要安装numactl,使用命令:yum -y install numactl,这时候再执行rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm即可。

⑤启动mysql服务

安装成功后,开启 mysql 服务:

systemctl start mysqld

设置为开机启动:

systemctl enable mysqld

查看 3306 端口是否开启:
netstat -ln | grep 3306

⑥修改 my.cnf 配置文件

需要找到 my.cnf 文件。my.cnf 文件的默认路径为/etc/my.cnf

编辑my.cnf:
vim /etc/my.cnf 插入以下代码:

validate_password=off
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

注:validate_password=off的意思是关闭密码验证插件(这一句必须加上,因为在修改密码的时候如果不加上会非常的麻烦)。

重启 mysql 服务:
systemctl restart mysqld

⑦ 重置密码

mysql5.7初始化后,会产生一个临时登录密码,前面在 my.cnf 文件中配置的日志路径是log-error=/var/log/mysqld.log, 查看此路径下面的mysqld.log日志, 可以找到临时密码。

示例行:A temporary password is generated for root@localhost: Xk.6:/1gYjfh 这里Xk.6:/1gYjfh就是临时密码。

接下来登录重置密码:

mysql -u root -p 
mysql> set password=password('新密码');
mysql> flush privileges;
mysql> exit;

这时候你可以使用mysql -u root -p重新使用新密码登录,验证有无修改成功。

⑧添加远程访问权限

#登录mysql
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> select host,user from user;
mysql> flush privileges;
#退出mysql,重启mysql服务生效