1.先停止数据库服务器
service mysqld stop
2.vim /etc/my.cnf
3.配置文件添加skip-grant-tables
[root@VM_0_8_centos ~]# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of R
在CentOS 7环境下安装MySQL 6并进行初始化设置,特别是设定初始密码,是一个关键步骤。以下是详细的操作流程和相关知识点:
1. **停止数据库服务**:
你需要停止正在运行的MySQL服务,以防止在配置过程中发生冲突。通过执行`service mysqld stop`命令来关闭MySQL服务。
2. **编辑配置文件**:
接下来,你需要编辑MySQL的配置文件`/etc/my.cnf`。通常,这个文件包含了MySQL服务器的启动参数。使用`vim`编辑器打开此文件,例如`vim /etc/my.cnf`。
3. **添加`skip-grant-tables`选项**:
在`[mysqld]`段落中添加`skip-grant-tables`选项。这将使MySQL在启动时忽略权限表,允许你无需密码登录并设置新的root用户密码。记得在添加后保存并退出编辑器。
4. **重启数据库服务**:
使用`systemctl restart mysql`命令重启MySQL服务,以便应用新配置。
5. **无密码登录并设置密码**:
现在,你可以无密码登录MySQL,使用`mysql -uroot -p`,然后直接回车跳过密码提示。一旦登录,你可以使用SQL命令`SET PASSWORD FOR root@localhost = PASSWORD('123456');`(将'123456'替换为你想要的新密码)来设置root用户的密码。
6. **验证密码设置**:
设置完密码后,使用`mysql -uroot -p123456`尝试用新密码登录,如果能够成功登录,说明密码设置成功。
7. **初始化root密码**:
如果MySQL的root用户没有密码,你可以直接输入`mysql -u root`登录。然后更新`user`表中的密码字段,如:`UPDATE user SET password=PASSWORD('123456') WHERE User='root';`
8. **允许远程访问**:
要允许远程访问MySQL,你需要更改权限设置。有几种方法可以做到这一点:
a. **修改用户表**:
登录MySQL,选择`mysql`数据库,更新`user`表中的`host`字段,将其设置为`%`,表示允许从任何主机访问:`UPDATE user SET host = '%' WHERE user = 'root';`
b. **授权**:
通过`GRANT`命令直接授权,如:`GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;`,然后使用`FLUSH PRIVILEGES;`刷新权限。
c. **在本地主机上运行命令**:
在安装MySQL的机器上,你可以直接在命令行中运行MySQL客户端,然后执行授权命令,例如:`GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;`。
9. **安全考虑**:
尽管`skip-grant-tables`选项方便了初始密码的设置,但长期开启会带来安全风险,因为它允许任何人无需验证即可访问数据库。在完成密码设置后,应移除或注释掉配置文件中的该选项,然后重启MySQL服务。
记住,数据库的管理和安全性是至关重要的,确保正确地设置和保护你的MySQL服务器是非常必要的。同时,定期备份数据并保持软件更新也是维护系统安全的关键步骤。