[目录]
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服务生效