环境
操作系统:64位WIN10
MySQL版本:MySQL Community Server 8.0.19
安装日期:2020年2月5日
下载
https://dev.mysql.com/downloads/mysql/
解压
解压到冇中文和空格的路径,此处为:D:\coding\mysql-8.0.19-winx64
新建配置文件
在安装目录下新建名为my.ini
的文件,并写入配置信息,注意路径(basedir和datadir)
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\coding\mysql-8.0.19-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\coding\mysql-8.0.19-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
环境变量
控制面板\系统和安全\系统 -> 高级系统设置 -> 环境变量
系统变量 -> 新建MYSQL_HOME
Path添加%MYSQL_HOME%\bin
初始化
以管理员身份运行cmd,cd到安装目录,输入下面命令
# 初始化(会出现临时密码)
mysqld --initialize --user=mysql --console
# 安装
mysqld -install
# 启动服务
net start mysql
# 登录(输入临时密码)
mysql -u root -p
# 修改密码
ALTER USER root@localhost IDENTIFIED BY '密码abc123';
连接测试
- navicat连接报错,可能因为MySQL8和MySQL5的加密规则不一样
另外,新版WIN10对旧版navicat等软件变得很不友好(经常挂掉) - pymysql可以正常连接
import pymysql
db = pymysql.connect('localhost', 'root', '123456', charset='utf8') # 创建数据库连接
cursor = db.cursor() # 创建游标
cursor.execute('show databases;') # 执行SQL
print(cursor.fetchall()) # 获取执行结果
db.commit() # 提交到数据库执行(增删改需要提交,查询可以不用)
cursor.close() # 关闭游标对象
db.close() # 关闭数据库的链接
其它命令
停止服务
net stop mysql
开启服务
net start mysql
登录
mysql -u root -p
建库
# CREATE DATABASE [IF NOT EXISTS] <数据库名>
CREATE DATABASE z;
可能报错
- 找不到VCRUNTIME140_1.dll
- cmd 发生系统错误 5。 拒绝访问。
是因为没有以管理员身份运行cmd