本文适用5.7.3x。最近安装几次MySQL之后有点心得,记录一下。
1. 下载
MySQL官网下载很慢,在此推荐用国内下载站,我用的是华为开源镜像站,速度很快。
华为开源镜像站_软件开发服务_华为云
在此选择对应的版本。
我选择是mysql-5.7.35-winx64.zip,链接:
https://repo.huaweicloud2.com/mysql/Downloads/MySQL-5.7/mysql-5.7.35-winx64.zip
2. 解压
解压到安装目录,注意路径不要有空格。如果非要带空格,那安装起来要注意很多地方。
本文安装目录为:D:/mysql/mysql-5.7.35-winx64
3. MySQL配置
新建my.ini文件,网上很多文章都推荐创建在解压目录。即D:/mysql/mysql-5.7.35-winx64/my.ini
my.ini参考文件内容如下:
[client]
port=3306
[mysql]
no-beep
# default-character-set=
[mysqld]
port=3306
# mysql根目录
basedir=D:\mysql-5.7.35-winx64
# 放所有数据库的data目录
datadir=D:\mysql-5.7.35-winx64\data
# character-set-server=
# 默认存储引擎innoDB
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#日志输出为文件
log-output=FILE
# 是否开启sql执行结果记录,必须要设置general_log_file参数,日志的路径地址
# 即日志跟踪,1为开启,0为关闭
general-log=0
general_log_file="execute_sql_result.log"
# 配置慢查询,5.7版本默认为1
slow-query-log=1
slow_query_log_file="slow-query.log"
long_query_time=10
#默认不开启二进制日志
#log-bin=mysql-log
#错误信息文件设置,会将错误信息放在data/mysql.err文件下
log-error=mysql.err
# Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=1
#lower_case_table_names: 此参数不可以动态修改,必须重启数据库
#lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
#lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
#lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
lower_case_table_names=2
#限制数据的导入导出都只能在Uploads文件中操作,这个是在sql语句上的限制。
#secure-file-priv="D:\AppServ\mysql-5.7.23/Uploads"
#值为null ,也就是注释掉这个参数或者secure-file-priv=null。表示限制mysqld 不允许导入|导出
#值为/tmp/ ,即secure-file-priv="/tmp/" 表示限制mysqld 的导入|导出只能发生在/tmp/目录下
#没有具体值时,即secure-file-priv= 表示不对mysqld 的导入|导出做限制
# 最大连接数
max_connections=20
# 打开表的最大缓存数
table_open_cache=2000
# tmp_table_size 控制内存临时表的最大值,超过限值后就往硬盘写,写的位置由变量 tmpdir 决定
tmp_table_size=16M
# 每建立一个连接,都需要一个线程来与之匹配,此参数用来缓存空闲的线程,以至不被销毁,
# 如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应连接请求。
# 最大缓存线程数量
thread_cache_size=10
# timestamp列如果没有显式定义为not null,则支持null属性。设置timestamp的列值为null,就不会被设置为current timestamp
# 不会自动分配default current_timestamp和on update current_timestamp属性,这些属性必须显式指定
explicit_defaults_for_timestamp=true
4. 初始化
defaults-file 指定配置文件路径
console 密码会在控制台显示
mysqld.exe --defaults-file="D:\mysql\mysql-5.7.34-winx64\my.ini" --initialize --console
5. 安装为服务
安装服务时指定配置文件,这样更明确一些。最好自己指定服务名,默认服务名是MySQL,本文命名为MySQL5735。命令如下:
mysqld --install MySQL5735 --defaults-file="D:\mysql\mysql-5.7.35-winx64\my.ini"
6. 修改root密码
登录MySQL,端口非3306时,要用-P指定
mysql -u root -P 3308 -p
回车后输入密码,密码为在初始化时在控制台打印的密码。
登入MySQL后必须先修改root密码,不能做其他操作。
修改命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
遇到的问题:
1. 安装路径中有空格,会出现初始化不成功、启动不成功等情况。
2. 在管理工具-事件中查看日志。
3. --defaults-file参数的位置,要紧跟着mysqld.exe,反则会提示找不到参数。
4. 配置数据路径、日志路径全部用"/"。