下面是详细讲解“Linux使用MySQL忘记root密码及修改MySQL默认编码”的完整攻略。
忘记root密码
当你忘记在Linux系统上使用MySQL的root密码时,可以通过以下步骤重置它。
步骤一:停止MySQL服务
在终端运行以下命令停止MySQL服务。
sudo systemctl stop mysql
步骤二:启动MySQL服务器跳过认证
使用下面的命令启动mysqld服务,--skip-grant-tables
选项可以让我们可以跳过认证阶段。
sudo mysqld_safe --skip-grant-tables &
步骤三:使用mysql客户端连接到服务器
使用以下命令连接到MySQL服务器,这个时候,我们不需要输入密码。
mysql -u root
步骤四:重置root密码
现在我们需要更新root用户的密码,请运行以下命令:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
这里的new_password
是你想要设置的新密码。然后,我们需要刷新权限表。
FLUSH PRIVILEGES;
步骤五:重启MySQL服务
我们重新启动MySQL服务。
sudo systemctl restart mysql
好了,现在你已经重置了MySQL root密码。
修改MySQL默认编码
如果在Linux系统上使用MySQL时,因为默认字符集与应用程序所需字符集不兼容而出现乱码情况,这时需要修改MySQL默认编码。
步骤一:编辑MySQL配置文件
编辑MySQL的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
,添加如下内容:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
步骤二:重启MySQL服务
执行以下命令重启MySQL服务器。
sudo systemctl restart mysql
这样一来,MySQL的默认字符集和排序规则就被修改为utf8,可以很好地解决乱码问题。
示例说明
示例一:重置MySQL Root密码
假设你已经输入错误的MySQL Root密码,无法访问它。要重置它,你可以执行以下几步:
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables & # 显式启动mysqld进程
mysql -u root # 连接到MySQL服务器,这个时候不需要密码
此时,你应该会看到 mysql>
命令行提示符。使用以下命令更新Root用户的密码:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
接下来,你可以断开与MySQL服务器的连接:
quit;
最后,重启MySQL服务使之生效:
sudo systemctl restart mysql
此时,你应该可以使用新密码访问MySQL服务器了。
示例二:修改MySQL默认编码
在一个WEB项目中,用户不时报告乱码问题。接下来,我们将演示如何在MySQL中设置默认编码以解决这个问题。首先,我们将编辑MySQL的配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在文件末尾,添加以下选项:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
保存并退出文件。然后,重启MySQL服务器:
sudo systemctl restart mysql
现在,MySQL默认字符集被设置为utf8,乱码问题应该已经被解决。注意,即使数据库中存在乱码问题,因为字符集已被更改,新数据将以正确的字符集插入,因此我们不必担心数据的丢失。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux使用MySQL忘记root密码及修改MySQL默认编码 - Python技术站