备注 | 修改日期 | 修改人 |
格式调整 | 2019-01-21 19:44:13[当前版本] | 系统管理员 |
CREAT | 2019-01-21 19:21:34 | 系统管理员 |
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] #skip-grant-tables # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. # mysql根目录 basedir = D:/dev/mysql-8.0.12 # 数据文件存放目录 datadir = D:/dev/mysql-8.0.12/data # 端口,默认3306 port = 3386 # 服务实例的唯一标识 # server_id = MySQL # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character_set_server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. join_buffer_size = 128M sort_buffer_size = 2M read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3386 default-character-set=utf8mb4
配置好后文件结构如下:
#初始化mysql
##遇到问题
初始化的时候,我遇到了麻烦,提示我找不到data目录,可是data目录我已经创建了。通过mysql官方文档才发现是basedir和datadir配置路径写法有问题
一直以来我都是copy
windows系统上显示的路径,在前几个版本mysql初始化过程中没有出现过找不到data目录的情况。
basedir =
D:\dev\mysql-8.0.12
datadir = D:\dev\mysql-8.0.12\data
现在目录要这样写
basedir = D:/dev/mysql-8.0.12
datadir =
D:/dev/mysql-8.0.12/data
或者
basedir =
D:\\dev\\mysql-8.0.12
datadir =
D:\\dev\\mysql-8.0.12\\data
所以大家在操作过程中,遇到问题,还是要多看看官方文档。
MySQL官方文档
##继续初始化MySQL
管理员运行cmd,并切换到mysql的bin目录
mysqld --initialize
如果初始化成功,data目录下会生成很多文件
#注册windows服务
mysqld --install MySQL58 #注册服务,MySQL58是服务名,根据自己的实际情况命名即可
mysqld --remove MySQL58 #移除服务
net start MySQL58 #启动服务,也可以通过服务管理界面进行操作
net stop MySQL58 #停止服务,也可以通过服务管理界面进行操作
也可以通过services.msc对服务进行操作
#登陆MySQL
因为我们不是使用的默认端口号,所以要使用-P指定端口号
临时密码在data目录下,以.err结尾的文件中。
mysql -uroot -P3386 -p
在这里找到密码,备用
登录成功
#修改默认密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘1234’;
FLUSH PRIVILEGES;
这样操作之后,就可以用新密码进行登录了
#特别提醒
##1
mysql8.0密码采用了新的加密方式caching_sha2_password,这种加密方式在使用cmd的登录是没有问题的,但是现在大多数客户端还没有更新,比如我用的navicat就连接不上(也可能我的版本太低)。
所以在配置文件中加了一条配置,即:
默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
##2
如果您在初始化数据库的时候忘记了加上述配置,导致客户端无法连接数据库
可以在修改密码的时候显示指定加密插件。
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘1234’;
##3
大家按照文档操作的时候要特别注意,文档中的一些字符发布之后变成了中文字符,有时候直接复制我放在本文中的命令会报错。请对照cmd操作图片,矫正后输入。
~小尾巴
只要有积累,就会有进步