转:https://www.cnblogs.com/trnanks/p/11662478.html
需求:在windows下安装多个不同版本的MySQL
一、准备工作
下载MySQL安装包,可一下载msi安装版本(有图形界面,点击自动配置),也可以下载zip压缩版本(需要自己配置)。我的情况是MySQL8.0是用图形界面安装好的,这里使用压缩版本安装MySQL5.7。
MySQL8.0官方下载地址:https://dev.mysql.com/downloads/mysql/
MySQL5.7官方下载地址:https://dev.mysql.com/downloads/mysql/
二、注意事项
1.为了避免发生各种奇怪的问题,路径最好全用英文。
2.路径在文件种写的时候要么用 \ ,要么用 / 。
3.清除之前配置过的MySQL Path环境变量。(虽然大家都知道环境变量就是在cmd输入命令时,先在配置环境变量的目录下查找执行命令。但是我还是被这个坑了,之前用MySQL8.0的时候配置了环境变量,现在安装MySQL5.7虽然工作目录已经切换到了当前5.7的安装目录,输入命令mysqld仍然使用的是8.0的exe)。(cmd执行命令时,先查找环境变量目录,再查找当前目录。)
三、安装过程
1.将下载好的mysql-5.7.27-winx64.zip解压到本地。
2.以管理员身份打开一个cmd窗口(不是管理员身份,后面创建服务的时候会被拒绝)。
3.切换工作目录到bin目录下。
4.执行命令 mysqld --initialize --console 其中--console可选项表示将输出打印到屏幕上,否则再data目录下的.err文件中查看。(初始化需要一段时间,不要心急)
这里显示的警告可以使用创建my.ini配置文件进行相应的配置,这段话种最重要的就是随机生成的初始密码需要先记一下。
5.创建服务 mysqld --install MySQL57 其中“MySQL57”是自己定义的。
6.启动服务, net start MySQL57 。或者使用WIN键 R,输入services.msc,使用图形界面开启服务。
很多人都是最后一步启动不起来,原因注意事项里已经说明,先清除之前的MySQL环境变量再进行安装。
如果还不行,也可以手动启动:在cmd界面上,输入如下指令:
mysqld --defaults-file="D:Program Filesmysql-5.6.12-winx64my.ini"
我的my.ini文件内容:
# MySQL Server Instance Configuration File [client] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port=3307 # 设置mysql的安装目录 basedir ="D:\environment\mysql-5.7.23-winx64" # 设置mysql数据库的数据的存放目录 datadir ="D:\environment\mysql-5.7.23-winx64\data" tmpdir ="D:\environment\mysql-5.7.23-winx64\data" socket="D:\environment\mysql-5.7.23-winx64\data\mysql.sock" log-error="D:\environment\mysql-5.7.23-winx64\data\mysql_error.log" # 设置mysql服务端默认字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB default-tmp-storage-engine=INNODB #server_id = 2 #skip-locking # 允许最大连接数 max_connections=1000 table_open_cache=256 query_cache_size=32M tmp_table_size=32M thread_cache_size=8 innodb_data_home_dir="D:\environment\mysql-5.7.23-winx64\data\" innodb_flush_log_at_trx_commit =1 innodb_log_buffer_size=128M innodb_buffer_pool_size=128M innodb_log_file_size=10M innodb_thread_concurrency=16 innodb-autoextend-increment=1000 join_buffer_size = 128M sort_buffer_size = 32M read_rnd_buffer_size = 32M max_allowed_packet = 32M explicit_defaults_for_timestamp=true #sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" skip-grant-tables #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
7.测试是否安装成功, mysql -u root -p ,然后输入密码。
四、常见问题
1.还能用到的几个命令
# 删除服务 sc delete MySQL57 # 安装时创建空密码root用户 mysqld --initialize-insecure --user=mysql
2.修改mysql密码
mysqladmin -u root -p password 新密码 #按下回车 Enter password: 旧密码
过程中遇到的错误:
服务没开导致>> ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
没有真正的初始化>> MySQL服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助