[每天记录一个问题,记录十年 Blog]
1.1 下载:[MySQL :: 下载 MySQL 安装程序](https://dev.mysql.com/downloads/installer/)
1.2 安装:
A. 下载后解压到安装目录,在 mysql-5.7.44-winx64 下新建my.ini文件,并修改 basedir 一行的值为自己的安装目录(双斜杠)
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
# basedir=C:\\web\\mysql-8.0.11
basedir=D:\\software\\mysql-5.7.44-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
B. Win + R输入 cmd ,按下CTRL+Shift+Enter打开管理员cmd,并切换路径到 mysql-5.7.44-winx64 下的 bin文件夹(/d参数指定同时切换驱动器和工作目录)
cd /d D:\software\mysql-5.7.44-winx64\bin
C:\Windows\System32>cd /d D:\software\mysql-5.7.44-winx64\bin
D:\software\mysql-5.7.44-winx64\bin>
C. 初始化数据库(创建了系统表如mysql.user等,并设置初始权限)
mysqld --initialize --console
执行完成后,会回显root用户的初始默认密码(每次密码不同):AEclugen1;ju
D:\software\mysql-5.7.44-winx64\bin>mysqld --initialize --console
2025-09-02T06:27:38.888719Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2025-09-02T06:27:39.139836Z 0 [Warning] InnoDB: New log files created, LSN=45790
2025-09-02T06:27:39.177119Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2025-09-02T06:27:39.267179Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: ec62722e-87c5-11f0-92fd-000c2957a5d0.
2025-09-02T06:27:39.270669Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2025-09-02T06:27:39.705343Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2025-09-02T06:27:39.705714Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2025-09-02T06:27:39.710513Z 0 [Warning] CA certificate ca.pem is self signed.
2025-09-02T06:27:39.866152Z 1 [Note] A temporary password is generated for root@localhost: AEclugen1;ju
D. 执行安装(将mysql安装为windows服务,服务名默认为“MYSQL”,安装成功后就可以通过net start/stop 来启停mysql服务)
mysqld install
D:\software\mysql-5.7.44-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
1.3 登录mysql
mysql登录格式:mysql -h 主机名 -u 用户名 -p
参数说明:
-h: 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u: 登录的用户名;
-p: 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
如果是本机mysql数据库,只需输入mysql -u root -p,再输入密码即可登录(密码可粘贴),出现mysql>即登录成功,输入 exit 或 quit 可退出登录
mysql -u root -p
D:\software\mysql-5.7.44-winx64\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.44
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
1.4 修改用户密码(生成的临时密码只能用于首次登录,无法执行任何操作,必须修改密码)
# 格式:ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@1234';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@1234';
Query OK, 0 rows affected (0.00 sec)
mysql>
其他:OMPjXfHam4>p
navicat连接mysql报错:

原因:
mysql的user表中,每个用户都有一个host字段,指定了哪个用户可以从哪个主机连接,比如root用户默认是’localhost’或’127.0.0.1’。1130的报错很明确,就是当前用户的主机名(或IP)没有被mysql服务器上的用户允许,就会报错。
解决方案:
把root用户的 host 从 ‘localhost’改为 ‘%’ (允许所有主机),或改为具体的主机名或IP(生产环境应考虑安全,创建一个新的用户,指定允许的 host)
SELECT user, host FROM mysql.user; # 检查用户的host设置
RENAME USER 'root'@'localhost' TO 'root'@'%'; # 将root用户的host从localhost改为%(允许所有主机)
FLUSH PRIVILEGES; # 刷新权限,使修改生效
mysql> SELECT user, host FROM mysql.user; # 检查用户的host设置
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost | # root@localhost,仅允许本机连接
+---------------+-----------+
3 rows in set (0.00 sec)
mysql> RENAME USER 'root'@'localhost' TO 'root'@'%'; # 将root用户的host从localhost改为%(允许所有主机)
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT user, host FROM mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % | # root@%,允许全部连接(不安全)
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql> FLUSH PRIVILEGES; # 刷新权限,使修改生效
Query OK, 0 rows affected (0.01 sec)
mysql>


