MySQL.8.0.11安装

环境:Win7x64、Win10x64、MySQL 8.0.15(下载于官方网站)

ZC:步骤还是比较少的,还蛮清晰的。主要的就是:(1)配置文件,(2)初始化操作,(3)安装服务,即可。

1、参考:MySQL-mysql 8.0.11安装教程 - Laumians - 博客园.html(http://www.cnblogs.com/laumians-notes/p/9069498.html

2、我的过程记录 (这里都以 YeJun的机子来说)(所有的 命令行都是在 管理员权限下的CMD或PowerShell中执行

 (1)文中 关于环境变量的设置我最后发现可以不用设置...

  (A) 设置了可能方便点,任何路径都可以用。

  (B) 但是不设置环境变量也可以啊,只不过 要进到MySQL的目录中再到bin文件夹中 去执行命令。稍烦 但是 个人觉得简洁一点,是个软件就要设置环境变量 设的里面又满又乱,混在一起 ...

 (2)解压 mysql-8.0.15-winx64.zip,至 E盘根目录,于是 可执行文件的目录为 "F:\mysql-8.0.15-winx64\bin"

  然后将我们的 my.ini文件 放到目录"F:\mysql-8.0.15-winx64"中

  下面开始 执行的命令 CMD/PowerShell都位于 位于路径"F:\mysql-8.0.15-winx64\bin"中

 (3)初始化:命令可以为:(CMD位于路径"F:\mysql-8.0.15-winx64\bin"中)

  PS:初始化操作,会自动在 目录"F:\mysql-8.0.15-winx64"下生成 "datadir"所指明的文件夹,不需要手动创建该文件夹

  PS:初始化时,会报警告说 MySQL建议使用"UTF8MB4"编码(警告信息为:"2019-02-20T01:11:36.382418Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous."),于是我使用了 "UTF8MB4"编码。

  (A) "mysqld --initialize --console":初始化时的一些信息 显示在控制台

  (B) "mysqld --initialize":

   (B.1) my.ini中未配置"log-error":初始化时的一些信息保存在 "datadir"下的 ?.err文件 中

   (B.2) my.ini中配置了"log-error":初始化时的一些信息保存在 "log-error"所指明的文件中

  (C) 参考:我在搜索文章的时候看到的,用于参考吧:"mysqld --initialize-insecure" 、 "mysqld --initialize --user=mysql --console"

 (4)安装服务  ("mysqld --install 服务名")  (不喜欢服务"自动"启动的话,记得 去改一下)

  例如:"mysqld --install mysql8015"

  删除服务:"sc delete mysql8015"、"mysqld -remove mysql8015"(这里也可以是"--remove"),如果执行的是 "mysqld -remove"的话 会默认将服务名为MySQL的服务删掉...! ! !

 (5)开始结束服务:

  "net start mysql8015" 、 "net stop mysql8015"

  PS:不用 服务的方式启动的话,直接执行命令"mysql"(这个可以通过查看服务的内容看到命令行的内容),只不过要保持一个CMD窗口不关闭(Linux里面的话 应该只要 命令的后面加一个" &",就不用占用一个终端窗口了)

 (6)改root密码

  (A) CMD中命令 "mysql -u root -p",登入到 MySQL里面

  (B) MySQL里面

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'dongruisoft.com';
Query OK, 0 rows affected (0.22 sec)

mysql>

    ZC:上面显示 "0 rows affected" 是表示成功的,我刚开始还以为是不成功...(可以exit退出 然后重新登录来验证一下)

 (7)授权 远程访问数据库:(网上说这个方式 不好,但我觉得就这个方式最简单最好记...)

F:\mysql-8.0.15-winx64\bin>mysql -u root -p
Enter password: ***************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.15 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *9454708D80C4818F4267B0CF5AADF3F864CFA995                              |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

mysql> update user set host='%' where user='root';
ERROR 1046 (3D000): No database selected
mysql> use mysql;
Database changed
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| root             | %         | *9454708D80C4818F4267B0CF5AADF3F864CFA995                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)

mysql>

  ZC:"flush privileges;"命令 一定要执行,不然修改不会马上生效 远程还是会连不上的

3、

4、遇到的一些问题:

 4.1、初始化操作时,报错:“2019-02-20T01:09:28.333406Z 0 [ERROR] [MY-010338] [Server] Can't find error-message file 'F:\mysql-8.0.11-winx64\share\errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.”

  ZC:我的是 "mysql-8.0.15-winx64",但是 我直接复制了网页文章中的路径 "mysql-8.0.11-winx64",于是就包这个错误了...

 4.2、临时密码 注意点:

2019-02-20T01:18:40.321702Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: -U)-hB7npio.

  ZC:向上面是这样的临时密码信息中,最后的字符 点".",它不是 标点符号 它也是密码的一部分...

 4.3、YeJun的机子相关:

  (1) 初始化的时候(使用命令"mysqld --initialize --console"时),控制台上老是有 'D:\phpevt\mysql\share\english\errmsg.sys' 相关的报错信息,我就把 "D:\phpevt\mysql"相关的环境变量删掉了,如下图中所示

   (A)这个删的是 "MYSQL_HOME"

    

   (B)这个删的是 "PATH"中的一部分"%MYSQL_HOME%\bin"

    

    然后,我初始化操作 就OK了

  (2) 但是我 "net start mysql8015"的时候,老是失败,还是提示说没有任何信息...于是我在 my.ini中配置了 "log-error",得到了 出错时的信息:

2019-02-20T05:22:52.216003Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2019-02-20T05:22:52.216075Z 0 [System] [MY-010116] [Server] F:\mysql-8.0.15-winx64\bin\mysqld (mysqld 8.0.15) starting as process 13788
2019-02-20T05:22:52.236578Z 0 [ERROR] [MY-010340] [Server] Error message file 'D:\phpevt\mysql\share\english\errmsg.sys' had only 886 error messages, but it should contain at least 4775 error messages. Check that the above file is the right version for this program!
2019-02-20T05:22:52.253746Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2019-02-20T05:22:52.413149Z 1 [ERROR] [MY-013090] [InnoDB] Unsupported redo log format (0). The redo log was created before MySQL 5.7.9
2019-02-20T05:22:52.413169Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2019-02-20T05:22:52.616436Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2019-02-20T05:22:52.617231Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-02-20T05:22:52.629873Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-02-20T05:22:52.630985Z 0 [System] [MY-010910] [Server] F:\mysql-8.0.15-winx64\bin\mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.

    看到,还是"D:\phpevt\mysql\???"的问题,环境变量都检查过了 相关的都删掉了。没办法了,想到还没重启OS,于是重启了一下 就没有 这个问题了...

  (3) 在删除我的MySQL的服务的时候,未进行深入思考 就执行了"mysqld -remove",导致 "D:\phpevt\mysql"对应的服务 MySQL被删掉了...

    我记得应该是对应的 命令"D:\phpevt\mysql\bin\mysqld"(我看了一下,"D:\phpevt\mysql\bin\mysqld.exe确实是存在的"),但是我不敢确定...

5、my.ini(网上看到,有人是 命名为 my-default.ini的,没有再去尝试这个文件名行不行了...)

 5.1、网页文章中的信息

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\\software\\mysql\\mysql-8.0.11-winx64   # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
# 设置mysql数据库的数据的存放目录
datadir=E:\\software\\mysql\\mysql-8.0.11-winx64\\Data   # 此处同上
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

 5.2、我一开始使用的这个 my.ini(端口是 3333,编码是 utf8)

[mysqld]
port=3333

basedir=F:\\mysql-8.0.15-winx64
datadir=F:\\mysql-8.0.15-winx64\\data

max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

[mysql]
default-character-set=utf8

[client]
port=3333
default-character-set=utf8

 5.3、后来的。由于 初始化操作一直不成功就改成下面这样 (改了 编码(UTF8MB4),改了端口 想试试看 是不是端口占用导致初始化不成功...)

[mysqld]
port=3335

basedir=F:\\mysql-8.0.15-winx64
datadir=F:\\mysql-8.0.15-winx64\\data

max_connections=200
max_connect_errors=10
character-set-server=UTF8MB4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

[mysql]
default-character-set=UTF8MB4

[client]
port=3335
default-character-set=UTF8MB4

 5.4、最后使用的(配置了"log-error")

[mysqld]
port=3335

basedir=F:\mysql-8.0.15-winx64
datadir=F:\mysql-8.0.15-winx64\data
log-error=F:\mysql-8.0.15-winx64\error_z.log

max_connections=200
max_connect_errors=10
character-set-server=UTF8MB4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

[mysql]
default-character-set=UTF8MB4

[client]
port=3335
default-character-set=UTF8MB4

6、

7、

8、

9、

猜你喜欢

转载自www.cnblogs.com/dbskill/p/10401744.html