前言
mysql8之后,即使是zip包,安装和使用步骤也有所不同。
使用步骤
- 下载mysql win64 zip包 https://dev.mysql.com/downloads/mysql/ ,目前我下载到的版本是
mysql-8.0.17-winx64
。 - 解压zip包到软件目录,例如我的安装目录是
C:\SWDTOOLS\mysql-8.0.17-winx64
。 - 在安装目录下新建一个
my.ini
默认配置文件(C:\SWDTOOLS\mysql-8.0.17-winx64\my.ini
)。
[mysqld]
# These are commonly set, remove the # and set as required.
basedir = C:\SWDTOOLS\mysql-8.0.17-winx64
datadir = C:\SWDTOOLS\mysql-8.0.17-winx64\data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server = utf8mb4
performance_schema_max_table_instances = 600
table_definition_cache = 400
table_open_cache = 256
[mysql]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
- 打开cmd,
cd /d C:\SWDTOOLS\mysql-8.0.17-winx64\bin
切换到安装目录下的bin
目录 - 输入
mysqld --initialize --console
初始化数据库,请留意root@localhost: GM;i=g;Ps9>y
部分,分号后面GM;i=g;Ps9>y
的那串就是密码,可以COPY下来保存。
2019-07-25T07:13:48.121669Z 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-07-25T07:13:48.121784Z 0 [System] [MY-013169] [Server] C:\SWDTOOLS\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server in progress as process 18336
2019-07-25T07:13:52.976051Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: GM;i=g;Ps9>y
2019-07-25T07:13:54.597278Z 0 [System] [MY-013170] [Server] C:\SWDTOOLS\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server has completed
- 运行MYSQL,直接运行bin下面的
mysqld.exe
,即可
- (可选)或者
mysqld --install mysql8
进行安装,安装后系统会有个叫mysql8
的服务
,当然这个服务名可以自己定制,修改最后一个参数即可。
- 运行
mysql -uroot -p
,输入刚才保存的密码即可登陆进去mysql命令行界面
- 输入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root123456';
即可把root密码
修改为root123456
- 使用DBever或者Navicat等SQL工具连接数据库。
Public Key Retrieval is not allowed问题
如果你也遇到了这个问题,请看该解决方案
如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;可以在连接中通过 ServerRSAPublicKeyFile 指定服务器的 RSA 公钥,或者AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥;但是需要注意的是 AllowPublicKeyRetrieval=True可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启
- 在URL连接后面增加
allowPublicKeyRetrieval=true
DBever
等SQL tool则在Driver properties
增加User Properties
,allowPublicKeyRetrieval=true
mysql导入导出sql文件
-
导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u dbuser -p dbname > dbname.sql
-
导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
-
导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table -
导入数据库
用source 命令,先进入mysql数据库控制台,如
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql