“Mysql:安装(Windows)”的版本间差异
跳到导航
跳到搜索
第107行: | 第107行: | ||
* 首次安装 MySQL 之后才需要进行数据目录初始化;但,初始化数据目录的命令不会覆盖任何现有的 mysql 数据库表,因此在任何情况下都可以安全运行。 | * 首次安装 MySQL 之后才需要进行数据目录初始化;但,初始化数据目录的命令不会覆盖任何现有的 mysql 数据库表,因此在任何情况下都可以安全运行。 | ||
== 多版本安装 | == 多版本安装 == | ||
多版本共存时: | 多版本共存时: | ||
1、需要配置不同的环境变量。 | 1、需要配置不同的环境变量。 | ||
第201行: | 第201行: | ||
#* 如果不能成功,试试指定所使用的配置文件“--default-file="D:\Program Files\MySQL\mysql-x.x.xx\my.ini"”; | #* 如果不能成功,试试指定所使用的配置文件“--default-file="D:\Program Files\MySQL\mysql-x.x.xx\my.ini"”; | ||
: [[File:MySQL多版本安装.png|800px]] | |||
::: [[File:MySQL多版本安装.png|800px]] | |||
== 卸载MySQL == | == 卸载MySQL == |
2021年10月23日 (六) 05:50的版本
下载安装包
一般选择的是社区版(MySQL Community Server)的GA版本(正式发布版本、生产版本),链接 MySQL:Download MySQL Community Server。
安装文件类型:
- “mysql-xxx-win64.zip”:编译好的 windows 64 位 MySQL,文件解压缩后即可使用(需要手工配置)。
- “mysql-xxx-win64.msi”:windows 安装包,双击执行根据向导安装即可。
- “mysql-xxx.zip”:windows源文件,需要编译。
安装 MySQL
以 mysql-5.7.33-winx64.zip 为例。
安装步骤:
- 解压 MySQL 文件到目的目录;(如“D:\Program Files\mysql-5.7.33-winx64”)
- 配置环境变量:
MYSQL_HOME:D:\Program Files\mysql-5.7.33-winx64; path 添加:%MYSQL_HOME%\bin;
- 新建配置文件“my.ini”:
[mysql] # 设置 mysql 客户端默认字符集 default-character-set=utf8 [mysqld] # 设置 3306 端口 port = 3306 # 设置 mysql 的安装目录 basedir=D:\Program Files\mysql-5.7.23-winx64 # 设置 mysql 数据库的数据的存放目录 datadir=D:\Program Files\mysql-5.7.23-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为 8 比特编码的 latin1 字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
- 用于配置MySQL的基础设置,如字符集、引擎、端口、安装目录、数据目录等。
- 初始化数据库:
# 初始化命令 mysqld --initialize-insecure --user=mysql
- MySQL目录中多出一个“data”文件夹,包含了系统的默认数据库;
- 如果使用“--initialize”还会生了一个随机的初始 root 密码。
- 安装服务:
# 将服务器安装为 Windows 服务,并设置服务为“自动启动” mysqld -install [service_name] # 将服务器安装为 Windows 服务,并设置服务为“手动启动” mysqld --install-manual [service_name]
- 验证安装:
关于“初始化数据库”
安装 MySQL 之后,初始化数据库,包括 mysql 系统数据库中的表:
mysqld --initialize --user=mysql [--console]
mysqld --initialize-insecure --user=mysql [--console]
- “--user=mysql”:以“mysql”身份运行该命令。
- “--console”:选项将消息定向到 Windows 控制台;否则将写入其标准错误输出:“错误日志”(data目录中后缀为“.err”的文件)。
- “--initialize”:进行“默认安全”的初始化,即:包括生成随机的初始root密码(可在错误日志中找到)。
- 以 root 连接到服务器时,“
mysql -u root -p
”需要生成的临时密码; - 在这种情况下,密码被标记为已过期,您将需要选择一个新密码;
- 以 root 连接到服务器时,“
- “--initialize-insecure”:执行初始化,但不会生成root密码。
- 以 root 连接到服务器时,不使用密码登录“
mysql -u root --skip-password
”; - 这是不安全的;假定您在将服务器投入生产使用之前会及时为帐户分配密码;
- 以 root 连接到服务器时,不使用密码登录“
对于某些 MySQL 安装方法,数据目录初始化是自动的。(如在 Windows 上通过msi文件的自动化安装过程) 对于其他安装方法,必须手动初始化数据目录。(包括在 Unix 和类似 Unix 的系统上从通用二进制发行版和源代码发行版进行安装,以及在 Windows 上从 ZIP Archive 软件包进行安装)
初始化期间的服务器操作:服务器检查数据目录是否存在:
- 如果不存在数据目录,则服务器将创建它。
- 如果数据目录存在但不为空(即它包含文件或子目录),则服务器在生成错误消息后退出:
[ERROR] --initialize specified but the data directory exists. Aborting.
- 在这种情况下,请删除或重命名数据目录,然后重试。
- 首次安装 MySQL 之后才需要进行数据目录初始化;但,初始化数据目录的命令不会覆盖任何现有的 mysql 数据库表,因此在任何情况下都可以安全运行。
多版本安装
多版本共存时: 1、需要配置不同的环境变量。 2、配置文件中:需要指定不同端口“port”避免冲突; 3、安装时,安装命令需要指定配置文件。
步骤:(以 5.7.35、8.0.27 为例)
- 解压 MySQL 文件到目的目录;
- 配置环境变量:
MYSQL_HOME57:D:\Program Files\MySQL\mysql-5.7.35 MYSQL_HOME80:D:\Program Files\MySQL\mysql-8.0.27 path 添加:%MYSQL_HOME57%\bin;%MYSQL_HOME80%\bin;
- 新建配置文件:
- 分别在两个 MySQL 目录中新建“my.ini”:
[mysqld] # 设置 3306 端口 port = 3306 # 设置 mysql 的安装目录 basedir=D:\Program Files\MySQL\mysql-5.7.35 # 设置 mysql 数据库的数据的存放目录 datadir=D:\Program Files\MySQL\mysql-5.7.35\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为 8 比特编码的 latin1 字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB [mysql] # 设置 mysql 客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3307 default-character-set=utf8
[mysqld] # 设置 3307 端口(原先的mysql5已经占用3306) port=3307 # 设置mysql的安装目录 basedir=D:\Program Files\MySQL\mysql-8.0.27 # 设置mysql数据库的数据的存放目录 datadir=D:\Program Files\MySQL\mysql-8.0.27\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3307 default-character-set=utf8mb4
- 需要设置不同的端口!
- MYSQL 8+ 字符编码要求使用“utf8mb4”,否则在初始化的时候会报一个警告;
- “server-id”用于不同服务器的主从复制,这里不需要;
- 初始化数据库:
cd D:\Program Files\MySQL\mysql-5.7.35\bin mysqld --initialize --user=mysql --console cd D:\Program Files\MySQL\mysql-8.0.27\bin mysqld --initialize --user=mysql --console
- 完成之后,可以通过“mysqld --version”确认是否成功;
- 如果不能成功,试试指定所使用的配置文件“--default-file="D:\Program Files\MySQL\mysql-x.x.xx\my.ini"”;
- 安装服务:
cd D:\Program Files\MySQL\mysql-5.7.35\bin mysqld –install MySQL57 cd D:\Program Files\MySQL\mysql-8.0.27\bin mysqld –install MySQL80
- 需要设置不同的服务名称!
- 如果不能成功,试试指定所使用的配置文件“--default-file="D:\Program Files\MySQL\mysql-x.x.xx\my.ini"”;
卸载MySQL
- 移除 MySQL 服务:
mysqld -remove
- 删除环境变量;
- 删除 MySQL 目录;
- 此外,在“C:\ProgramData”、“C:\Program Files (x86)”、“C:\Program Files”等位置可能还有 MySQL 的文件夹;
进入 MySQL
- 启动服务:使用Windows的cmd执行命令,用于手动启动服务:
net start mysql
- 登录:
mysql -u root -p
- 设置密码:
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
- 操作数据库:如查看存在的数据库等:
show databases;
- 退出和停止:
quit // 退出 net stop mysql // 停止服务
附:安装 MySQL(mysql-installer-community-5.7.33.0.msi)
使用Windows Installer安装MySQL顺序而行,没有特别需要注意的地方: