麒麟桌面系统MySQL安装笔记

Lear 2025-12-02 10:15:00
Categories: Tags:

##麒麟桌面系统MySQL安装笔记##
检查系统,关闭防火墙等安全选项或规则里放行3306端口

查看mysql组件
sudo apt list mysql*
安装
sudo apt install mysql-server-8.0 -y

配置监听所有 IP
编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
将以下配置项修改为:
bind-address = 0.0.0.0
保存并退出后重启 MySQL 服务:
sudo systemctl restart mysql

进行安全配置,设置root密码,移除匿名用户
sudo mysql_secure_installation
运行后会出现一系列提示,我们按照以下步骤回答:
是否启用密码验证插件? - 输入 y 然后按回车(对于小白用户,我们使用简单的密码验证方式)
密码强度策略 输入0 简单密码
设置root密码 - 输入你要设置的密码,然后再次输入确认,提示密码评分,是否继续输入y
是否移除匿名用户? - 输入 y 然后按回车
是否禁止root远程登录? - 输入 n 然后按回车(这样我们可以从其他电脑连接)
是否移除测试数据库? - 输入 y 然后按回车
是否重新加载权限表? - 输入 y 然后按回车

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

使用root用户登录MySQL。
sudo mysql -u root -p
输入刚才设置的密码

配置远程登录1
use mysql;
update user set host=’%’, plugin=’mysql_native_password’ where user =’root’;
SELECT User, Host, plugin FROM mysql.user WHERE User=’root’;
FLUSH PRIVILEGES;
登录不了再次使用sudo mysql_secure_installation重设密码

配置远程登录2
以下方法需要高强度密码,创建 root@% 用户或重设权限
DROP USER IF EXISTS ‘root‘@’%’;
CREATE USER ‘root‘@’%’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

直接少加root账户设置值
INSERT INTO user (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv, Create_tablespace_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections, plugin, authentication_string, password_expired, password_last_changed, password_lifetime, account_locked, Create_role_priv, Drop_role_priv, Password_reuse_history, Password_reuse_time, Password_require_current, User_attributes) VALUES (‘%’, ‘root’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘’, ‘’, ‘’, ‘’, 0, 0, 0, 0, ‘mysql_native_password’, ‘*6EE341C28A8395CBBE908E48A19D5727390C0BA2’, ‘N’, ‘2025-11-30 18:18:18’, NULL, ‘N’, ‘Y’, ‘Y’, NULL, NULL, NULL, NULL);

常规密码修改方法,使用 ALTER USER 命令(推荐)
登录 MySQL 后执行以下 SQL 语句修改密码:
– 修改指定用户密码
ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘新密码’;
– 指定认证插件(兼容旧客户端)
ALTER USER ‘root‘@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;

MySQL 8.0 推荐的修改密码方式:
– 修改当前登录用户的密码
ALTER USER USER() IDENTIFIED BY ‘新密码’;
– 修改指定用户的密码(需要有相应权限)
ALTER USER ‘用户名‘@’主机名’ IDENTIFIED BY ‘新密码’;
使用 mysqladmin 命令(在命令行执行)
mysqladmin -u 用户名 -p旧密码 password 新密码
mysqladmin -u root -p password NewStrongPassword123!
FLUSH PRIVILEGES;

查看所有数据库
SHOW DATABASES;

忘记MySQL root密码怎么办?
A: 别着急,我们可以重置密码:
停止MySQL服务:sudo systemctl stop mysql
以跳过权限表的方式启动:sudo mysqld_safe –skip-grant-tables &
无密码登录:mysql -u root
重置密码:
FLUSH PRIVILEGES;
ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘新密码’;

退出并重启服务:
exit
sudo systemctl restart mysql

Q2: 安装过程中遇到依赖问题怎么办?
A: 可以尝试以下命令修复依赖:
sudo apt –fix-broken install
sudo apt update && sudo apt upgrade

初始化数据库,记录初始密码
sudo mysqld –initialize –user=mysql –lower-case-table-names=1
使用上面的命令初始化时会重置密码,原始配置文件的密码会失效,新密码如图所示
可以去数据库日志文件中查询
地址:/var/log/mysql/error.log
关键词:A temporary password is generated for root@ localhost:

原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决方法:修改加密方式
mysql -u root -p 替换为你的密码
use mysql;
# 未开启远程连接时将’%’换成’ localhost ‘
ALTER USER ‘root‘@’%’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #更改加密方式
ALTER USER ‘root‘@’%’ IDENTIFIED WITH mysql_native_password BY ‘替换为你的新密码’; #更新用户密码
FLUSH PRIVILEGES; #刷新权限

创建新用户并授权远程访问:
CREATE USER ‘username‘@’%’ IDENTIFIED BY ‘password’; # ‘%’ 表示任何IP地址,也可以指定特定的IP地址如 ‘192.168.1.5’。
GRANT ALL PRIVILEGES ON . TO ‘username‘@’%’; # 授予所有数据库的所有权限。
FLUSH PRIVILEGES; # 使权限立即生效。

MySQL忘记密码(重置密码)
停止 MySQL 服务

Linux

sudo systemctl stop mysqld

Windows

net stop mysql

以跳过权限验证的方式启动 MySQL

Linux

sudo mysqld_safe –skip-grant-tables –skip-networking &

Windows(在MySQL安装目录的bin目录下)

mysqld –console –skip-grant-tables –shared-memory

无密码登录 MySQL
mysql -u root

在 MySQL 命令行中执行以下命令重置密码
– 切换到mysql系统数据库
USE mysql;
– 更新密码(MySQL 8.0)
UPDATE user SET authentication_string = ‘’ WHERE user = ‘root’;
FLUSH PRIVILEGES;
ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;

退出并重启 MySQL 服务

Linux

sudo systemctl restart mysqld

Windows

net start mysql