一台电脑(windows)安装两个版本MYSQL方法
一、同一台电脑需要安装2个MYSQL,以mysql-5.7.39和mysql-8.0.30为例;
下载:https://downloads.mysql.com/archives/community/ 选择相对应版本;
下载并解压下相应安装包;
先安装mysql-5.7.39,解压后放入相应磁盘,并新建data和uploads文件夹及my.ini文件;
my.ini内容:文件格式为ini,编辑对应路径
[mysqld]port=3306character_set_server=utf8basedir=C:\mysql-5.7.39datadir=C:\mysql-5.7.39\dataserver-id=1sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONlower_case_table_names=1innodb_file_per_table = 1log_timestamps=SYSTEMlog-error = error.logslow_query_log = 1slow_query_log_file = slow.loglong_query_time = 5log-bin = binlogbinlog_format = rowexpire_logs_days = 15log_bin_trust_function_creators = 1secure-file-priv=C:\mysql-5.7.39\uploads[client]default-character-set=utf8
4.在环境变量-path配置变量:
初始化数据库:(管理员身份运行cmd);
切换到 C:\mysql-5.7.39 执行 :mysqld --initialize-insecure
接着进入到 bin下执行安装:mysqld –install MySQL57
启动 MySQL: net start mysql57 或者在任务管理器右击启动;
设置登陆密码
使用 mysql -uroot 直接登陆密码;
SET PASSWORD FOR 'root'@'localhost'= "root-pas";GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root-pas' WITH GRANT OPTION;FLUSH PRIVILEGES;
至此,mysql-5.7.39安装完成。
二、安装mysql-8.0.30 (先停止mysql-5.7.39)
解压压缩包,新建data,uploads及my.ini (同mysql57步骤)
修改my.ini 修改端口为3307,字符集为:character_set_server=utf8mb4;
添加:shared-memory;
3.同样配置环境变量(同上),以管理员身份运行CMD;
切换到 E:\mysql-8.0.30\bin下,执行:
执行:mysqld --defaults-file=E:\mysql-8.0.30\my.ini --initialize --console (记住临时密码)
执行:mysqld install MySQL8
4.修改注册列表路径:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MYSQL8 修改路径(默认为第一次安装5.7的路径)
启动mysql8(方法同上)
mysql -8.0.30 安装完成,通过临时密码登陆修改;
临时密码无法进去,通过无密码进入:my.ini 中[mysqld]下添加 skip-grant-tables 并重启,登陆修改
use mysql ;
输入:update user set authentication_string=‘’ where user=‘root’; 将authentication_string 置空;
修改密码,仍报错;
先刷新一下权限表:mysql> flush privileges;
再次修改密码成功:SET PASSWORD FOR 'root'@'localhost'= "root-pas";
刷新:FLUSH PRIVILEGES;
去掉my.ini中 skip-grant-tables 并重启,通过密码登陆,成功。
===================================================================
安装过程中遇到的问题:
安装mysql8时无法启动,重配置环境变量及注册列表路径;再次启动成功,但启动后又自动停止。。。。。
查看data 日志,网上提示注释掉#sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MySQL8没有这个,注释后仍报错。。。。。
查看端口是否占用,netstat -ano|findstr 3307 依然没占用;
继续百度,管理员身份cmd 到bin下 E:\mysql-8.0.30\bin>mysqld --install 提示成功,
Service successfully installed. 服务没问题;
继续执行:mysqld --console 提示报错:
[ERROR] [MY-010131] [Server] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS
解决:在my.ini中 [mysqld] 下添加 shared-memory (如上图),重启服务,正常运行;
# 另一个方法是删除data 文件夹,重新执行命令注册自动生成data (没测试)
6.在一个就是密码无法登陆,需要先刷新权限,再修改密码。
在对应的bin目录下登陆mysql,均显示登陆mysql8; 先停止mysql8,登陆上mysql57后再启动mysql8登陆显示正常;
来源地址:https://blog.csdn.net/g100568999/article/details/128301063
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341