windows安装多个mysql&Docker安装MySQL5.7

windows安装多个mysql 
--安装第1个mysql
1.在官网上面下载mysql
2.解压(这里最好不要放在系统盘,原因你懂得)
3.添加环境变量到path,本机的是E:mysql-5.7.21in;注意不要出现中文字符的情况
4.配置,修改解压目录下的 my.ini文件 my.ini文件自己手动添加

[Client]
#设置3306端口
port=3306
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
#设置mysql的安装目录
basedir=E:mysql-5.7.21-winx64
#设置mysql数据库的数据的存放目录
datadir=E:mysql-5.7.21-winx64data
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#开启打印错误日志
log_error=E:mysql-5.7.21-winx64errorlog_error.txt

5.安装mysql服务并启动之:(一定要以管理员权限运行cmd)
--以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录
--参考,windows系统可能不识别-install
--mysqld -install //注册服务
--mysqld -remove //卸载服务
--注册服务到windows服务,需要以管理员身份运行cmd
mysqld install
net start mysql

--执行完后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空
mysqld --initialize-insecure --user=mysql
net start mysql

--退出管理员窗口,用普通cmd窗口打开,运行cmd
mysql -uroot -p 然后不输入密码,回车

--查看一下编码
show variables like 'character_set%';

--mysql 修改密码为123456
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

-------------------------------------------------------------------
--安装第2个mysql
1.解压mysql-5.7.29-winx64.zip
2.修改my.ini的配置文件内容

[Client]
#设置3316端口
port=3316
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3316端口
port = 3316
#设置mysql的安装目录
basedir=E:mysql-5.7.29-3316
#设置mysql数据库的数据的存放目录
datadir=E:mysql-5.7.21-winx64data
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#开启打印错误日志
log_error=E:mysql-5.7.29-3316errorlog_error.txt

3.把第二个MySQL服务配置环境变量,E:mysql-5.7.29-3316in 添加到系统变量path中。
--用管理员身份进入到第二个MySQL的bin目录下,注册MySQL服务:
--初始化数据:
cd /d E:mysql-5.7.29-3316in
mysqld --initialize-insecure
--注册成名称为MYSQL3316的系统服务名称:
mysqld install mysql3316 --defaults-file=“E:mysql-5.7.29-3316my.ini”
--启动mysql3316服务
net start mysql3316
--查看注册变服务路径:用E:mysql-5.7.21-winx64的mysqld,否则mysql3316服务无法启动:发生系统错误 193,应该是识别了第1个mysql的环境变量
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMYSQL3316,修改ImagePath的数据值为MySQL服务的对应的安装路径:
E:mysql-5.7.21-winx64inmysqld --defaults-file=E:mysql-5.7.29-3316my.ini mysql3316

--若需要删除mysql3316服务
net stop mysql3316
sc delete mysql3316
--删除相关注册表信息,重启电脑后被删除的服务彻底消失
在Win7开始菜单栏搜索 regedit 进入注册表编辑器(在cmd下输入此命令也是可以打开的)
HKEY_LOCAL_MACHINESYSTEMControlSet002serviceseventlogApplicationMySQL
--win10对应目录
HKEY_LOCAL_MACHINESYSTEMControlSet001servicesMySQL

--4.
--不用密码登录
cd /d E:mysql-5.7.29-3316in
mysql -u root -p
use mysql;
--update user set password=password(“123456”) where user=“root”;
--无password,格式为password(“123456”) ,否则mysql服务会被破坏且无法登陆
update user set authentication_string=password(“123456”) where user="root";
select user,host,authentication_string from user;
flush privileges;
quit;

-----------------------------------------------------------
--如果出现以下问题,请按如下操作:
--1.
mysql -u root -p
两次回车;返回ERROR 1045(28000):Access denied for user 'root'@'localhost' (using password: NO) 用户root拒绝访问。
此时会提示密码错误,打开data目录,用记事本打开.err文件,搜索password会找到临时生成的密码,复制。把密码复制过去,即可进入,但是进入之后用show databases;查看数据库的时候会出现ERROR 1820(HY000): You must reset your password using ALTER USER statement before executing this statement. (要重置密码才可以)
这时输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
转载文章:http://blog.csdn.net/you_are_my_dream/article/details/53022328

--2.
mysql 安装问题一:由于找不到MSVCR120.dll,无法继续执行代码.重新安装程序可能会解决此问题。
这种错误是由于未安装vcredist(microsoft visual c++ 2013 redistributable)引起的
下载 vcredist 地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=40784

----------------------------------------------------------------------------------------------------------------------------
Docker安装MySQL5.7
docker pull mysql:5.7
docker images
#先让容器在后台运行,并取个别名为mysql5.7,此时还没有修改配置文件
docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=Hangzhou@123 -d mysql:5.7
docker ps
#查看容器内部的配置文件:conf.d my.cnf my.cnf.fallback mysql.cnf mysql.conf.d
docker exec mysql5.7 ls /etc/mysql
#进入容器终端
docker exec -it mysql5.7 /bin/bash
#进入mysql终端,并输入密码
mysql -uroot -pHangzhou@123
grant all privileges on *.* to root@'%' identified by 'Hangzhou@123';
flush privileges;
quit;
exit

#在宿主机创建配置文件目录
mkdir -p /root/mysql5.7/conf
#复制容器内部的配置文件到宿主机
docker cp -a mysql5.7:/etc/mysql/ /root/mysql5.7/conf
#在宿主机创建数据目录
mkdir /root/mysql5.7/data
#赋予宿主机/root/mysql5.7目录最高读写权限
chmod -R 777 /root/mysql5.7

#删除mysql5.7容器,-f参数是强制删除运行中的容器
docker rm -f mysql5.7
#重新运行容器,映射端口,并挂载配置文件、数据文件,设置账号密码,并设置编码方式为UTF-8
docker run --restart=always -p 3306:3306 --name mysql5.7 -v /root/mysql5.7/conf:/etc/mysql -v /root/mysql5.7/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Hangzhou@123 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

#开放宿主机防火墙3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
原文地址:https://www.cnblogs.com/buffercache/p/14070489.html