本文将详细探讨如何在CentOS7上安装MySQL8、查找这个临时密码以及如何在必要时重置密码
一、安装MySQL8 在CentOS7上安装MySQL8通常涉及以下步骤: 1.卸载旧版本MySQL或MariaDB: CentOS7可能预装了MariaDB,而MariaDB与MySQL存在依赖冲突
因此,在安装MySQL8之前,需要先卸载MariaDB
可以使用以下命令查找并卸载MariaDB: bash rpm -qa | grep mariadb sudo rpm -e mariadb-libs --nodeps 如果系统已经安装了旧版本的MySQL,同样需要先卸载
可以使用以下命令查找并卸载MySQL: bash rpm -qa | grep mysql sudo yum remove【mysql-package-name】 其中,【mysql-package-name】是你要卸载的MySQL包名
卸载完成后,删除残留的MySQL配置文件: bash sudo find / -name mysql sudo rm -rf【mysql-config-directory】 其中,【mysql-config-directory】是MySQL配置文件的路径
2.配置MySQL 8安装源: 接下来,需要配置MySQL8的安装源
可以从MySQL官方网站下载MySQL8的YUM存储库RPM包,并使用以下命令安装: bash sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 或者,也可以使用以下命令下载并安装(注意版本号可能有所不同): bash wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm sudo yum localinstall mysql80-community-release-el7-1.noarch.rpm 3.安装MySQL 8服务器: 配置好安装源后,可以使用以下命令安装MySQL8服务器: bash sudo yum install mysql-community-server 4.启动MySQL服务: 安装完成后,启动MySQL服务并检查其状态: bash sudo systemctl start mysqld.service sudo systemctl status mysqld.service 如果服务启动成功,你将看到绿色的“active(running)”状态
二、查找MySQL8临时密码 MySQL8在首次安装后,会在安装日志中生成一个临时密码
这个密码通常位于`/var/log/mysqld.log`或`/var/log/mysql/mysqld.log`文件中
可以使用以下命令查找临时密码: bash sudo grep temporary password /var/log/mysqld.log 或者: bash sudo grep A temporary password /var/log/mysql/mysqld.log 请注意,日志文件的具体位置可能因安装方式而异
如果找不到临时密码,可以尝试直接查看日志文件的内容: bash sudo cat /var/log/mysqld.log 或者: bash sudo cat /var/log/mysql/mysqld.log 在日志文件中搜索包含“temporary password”的行,即可找到临时密码
三、修改MySQL8密码 找到临时密码后,可以使用该密码登录MySQL数据库,并修改root用户的密码
以下是修改密码的步骤: 1.登录MySQL数据库: 使用找到的临时密码登录MySQL数据库: bash mysql -uroot -p 然后输入临时密码
2.修改密码: 登录成功后,使用以下命令修改root用户的密码: sql ALTER USER root@localhost IDENTIFIED BY new_password; 其中,`new_password`是你希望设置的新密码
请确保新密码符合MySQL的密码策略要求
3.刷新权限: 修改密码后,使用以下命令刷新权限表,以确保更改生效: sql FLUSH PRIVILEGES; 4.退出MySQL数据库: 修改完成后,退出MySQL数据库: sql exit; 四、重置MySQL8密码(忘记密码时) 如果你忘记了MySQL8的root用户密码,可以通过以下步骤重置密码: 1.停止MySQL服务: 首先,需要停止MySQL服务: bash sudo systemctl stop mysqld 2.以安全模式启动MySQL服务: 然后,以安全模式启动MySQL服务,跳过权限表: bash sudo mysqld_safe --skip-grant-tables & 请注意,这个模式下的MySQL数据库是不安全的,因此请尽量避免网络访问
3.登录MySQL数据库: 无需密码即可登录MySQL数据库: bash mysql 4.刷新权限表: 登录成功后,刷新权限表: sql FLUSH PRIVILEGES; 5.重置密码: 使用以下命令重置root用户的密码: sql ALTER USER root@localhost IDENTIFIED BY new_password; 其中,`new_password`是你希望设置的新密码
6.退出MySQL数据库: 修改完成后,退出MySQL数据库: sql exit; 7.停止安全模式并重启MySQL服务: 停止正在运行的安全模式MySQL服务,并重新启动MySQL服务以应用新的密码设置: bash sudo systemctl stop mysqld sudo systemctl start mysqld 8.验证密码重置是否成功: 使用新密码尝试登录MySQL数据库,以验证密码重置是否成功: bash mysql -uroot -p 然后输入新密码
如果能够成功登录,则说明密码重置成功
五、配置MySQL允许远程访问 默认情况下,MySQL只允许本地访问
如果需要从远程主机访问MySQL数据库,需要进行以下配置: 1.开放MySQL端口: 首先,确保MySQL的3306端口在防火墙中是开放的
可以使用以下命令开放端口: bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo systemctl restart firewalld.service 如果你在云平台(如阿里云)上运行CentOS7,还需要在云平台的安全组规则中开放3306端口
2.修改MySQL用户权限: 接下来,登录MySQL数据库,并修改root用户的权限,允许其从任何主机访问: sql USE mysql; UPDATE user SET host=% WHERE user=root; FLUSH PRIVILEGES; 或者,你可以为特定IP地址设