前言
操作系统window 10 64位。准备装2个版本。
安装版
这里我选择的Custom,也就是自定义,可以自行选择自己需要的模块。
我选了不少模块,如ODBC、NET、Shell、Python
一路下一步,设置root账号密码以及添加用户、指定服务名称、指定日志文件名称等,这些设置到时候会出现再配置文件中,到时候去看my.ini就知道了。不设置的话,会使用默认的,比如你的主机名叫HP-20181256,那么日志文件默认前缀就是主机名,如HP-20181256.err
其他安装细节我省略了,没注意太多。
解压版
解压版和安装版不一样,下载下来少很多东西,比如ODBC这些都没有。只有主要的功能。下载下来还要自己创建配置文件ini,不像安装版的配置文件是安装时候创建的,比如你安装的目录为C:\Program Files\MySQL\MySQL Server 5.7,那么在C:\ProgramData\MySQL\MySQL Server 5.7下就能找到你的配置文件(ProgramData是个隐藏文件夹)。
下载地址:https://dev.mysql.com/downloads/mysql/
解压之后在目录新建my.ini配置文件
这里提供一个比较精简的模板
[client]
default-character-set = utf8mb4
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Program Files\MySQL\mysql-8.0.27-winx64
# 设置mysql数据库的数据的存放目录,此外还包括日志
datadir=C:\Program Files\MySQL\mysql-8.0.27-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# SQL模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 默认身份认证使用的方式
default_authentication_plugin=mysql_native_password
collation-server = utf8mb4_general_ci
分析
- default_authentication_plugin属性:在8.0之后不知道哪个版本开始,默认使用caching_sha2_password,这里使用mysql_native_password。区别在于创建用户和修改密码指定的参数不同。比如
CREATE USER 'sha2user'@'localhost'
IDENTIFIED WITH caching_sha2_password BY 'password';
- default-character-set属性:如果版本够老,可以使用utf8,但是此utf8并非包含utf8mb4,反而比utf8mb4里的要少。总之是这家公司的神奇操作吧,可以理解为补充版,除了utf8mb4还有很多。
配置文件创建好之后,准备创建服务。先以管理员方式打开命令提示符
切换到bin目录
cd C:\Program Files\MySQL\mysql-8.0.27-winx64\bin
初始化数据库并获取随机生成的密码
//该命令执行后,会在mysql解压目录生成data文件夹,在文件夹中找到一个.err结尾的文件,打开后能看到随机生成的密码。也可以使用 mysqld --initialize --console将密码打印在控制台,不过需要手动保存一下,之后修改密码要用到
mysqld --initialize
创建服务
//配置文件放在默认位置,所以可以省略指定配置文件,否则需要添加 --defaults-file="C:\Program Files\MySQL\mysql-8.0.27-winx64\my.ini"
mysqld --install MySql8027
// mysqld --install MySql8027 --defaults-file="C:\Program Files\MySQL\mysql-8.0.27-winx64\my.ini"
打开服务
//不区分大小写的
net start mysql8027
//关闭服务使用 net stop mysql8027
服务启动后可以通过services.msc查看服务
登陆
mysql -u root -p -P3306
输入之前保存的密码,进入mysql
修改密码
//这里使用的mysql_native_password,不是caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
补充几个常用的命令
- 查看端口
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set, 1 warning (0.00 sec)
- 查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.00 sec)
- 查看用户列表(显示用户名和主机号)
mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.01 sec)
补充1:删除服务
- win + R调出运行
- 输入“regedit”
- 找到这个路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
- 找到服务并删除
- 重启,修改注册表的操作是需要重启的
补充2:修改端口号
修改my.ini
[mysqld]
#设置端口
port=3308
保存之后,重启服务
再登陆就得这么着了,不过密码还是那个密码
mysql -u root -p -P3308
补充3:使用SQLyog软件愉快玩耍
不管你装什么软件,反正服务开了,直接连就完了。