MySQL.8.0.11安装
环境:Win7x64、Win10x64、MySQL 8.0.15(下载于官方网站)
ZC:下面,第10,有自己机子上安装的过程,简单一些,直接无脑照着做就行
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、
10、(20190319) Win7x64 中安装 mysql-8.0.15-winx64.zip
(1)、mysql-8.0.15-winx64.zip 解压在 目录"E:\MySQL\mysql-8.0.15-winx64",在该目录中 新建文件my.ini 贴入内容:
[mysqld] port=3335 basedir=E:\MySQL\mysql-8.0.15-winx64 datadir=E:\MySQL\mysql-8.0.15-winx64\data log-error=E:\MySQL\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
(2)、来到目录"E:\MySQL\mysql-8.0.15-winx64\bin"中,执行命令"mysqld --initialize --console" --> 初始化
ZC:一定注意 上面ini文件中的 3个目录
ZC:记得 要保存 临时密码,不然的话 就要全部重来,将 data文件夹删掉 再次"mysqld --initialize --console"
(3)、E:\MySQL\mysql-8.0.15-winx64\bin>mysqld --install MySQL8015
(4)、E:\MySQL\mysql-8.0.15-winx64\bin>net start MySQL8015
(5)、改密码
E:\MySQL\mysql-8.0.15-winx64\bin>mysql -u root -p 用初始化操作时生成的临时密码登录
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'dongruisoft.com';
现在 本地访问使用 都可以了
11、
12、
13、
14、
15