windows安装mysql、docker安装mysql
1、windows安装mysql
1.1、下载Mysql安装包
1.1、访问地址,该地址默认下载的是mysql8版本的,第一个是正式版的,第二个是debug办版本。正常情况下,下载第一个就可以了。
点击Download后,会出现如下界面,直接点No thanks, just start my download.即可成功下载。
如果想下载其他版本的mysql,下载指定版本的mysql,然后直接选对应的版本就可以了,如下图。
1. 2、Mysql配置文件
下面是我的Mysql解压位置,my.ini文件是手动创建的,database目录也需要手动创建。
my.ini内容,您直接拿来用就行了,记得修改下目录就行
[mysqld]
#设置3306端口
port=3306
#设置mysql的安装目录
basedir=D:\\software\\work\\mysql-5.7.12-winx64\\database
#设置mysql数据库的数据的存放目录
datadir=D:\\software\\work\\mysql-5.7.12-winx64\\database\\data
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
group_concat_max_len=102400
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
1. 3、Mysql配置环境变量
这个就不截图了,我说下配置哪些变量就行了。
直接在Path变量中加一行mysql安装的bin目录地址。
D:\software\work\mysql-5.7.12-winx64\bin
1. 4、Mysql启动前设置
***下面命令都在cmd控制台执行,记得用管理员打开cmd控制台。 ***
在bin目录下执行 mysqld --initialize-insecure
注意:如果执行mysqld --initialize-insecure命令报下图错误。则安装下vcredist_x64.exe,如果不报错,则不安装。
安装mysql
在bin目录下执行 mysqld -install
启动mysql
在bin目录下执行 net start mysql
登入Mysql
root用户默认是没有密码的,直接执行mysql -u root 命令就可以登入进入了。
set password for root@localhost = password(‘root’); 设置root用户的密码为root,
mysql -u root -proot 在登入。
注意:如果登录不上,可能初始化时设置了初始密码,在下面文件中的日志可以看到密码。把data目录删掉,重新执行下mysqld --initialize-insecure命令,查看日志即可
1. 5、JDK环境变量配置
1、新建系统变量JAVA_HOME
值是jdk安装的根目录,我的是:C:\Program Files\Java\jdk1.8.0_111
2、新建系统变量CLASSPATH变量,值固定
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
3、在系统变量的path变量里添加两行:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
2、docker安装mysql5.7
拉取镜像
docker pull mysql:5.7
创建映射目录
mkdir /mydata/mysql/data
mkdir /mydata/mysql/conf
mkdir /mydata/mysql/log
创建配置文件
cd /mydata/mysql/conf
vi my.cnf
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
group_concat_max_len=102400
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
启动mysql
docker run -d \
--privileged=true \
--name mysql57 \
-p 3306:3306 \
--restart=always \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /mydata/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7 \
启动参数解读
-p 3306:3306:指定宿主机端口与容器端口映射关系
–name mysql:创建的容器名称
–restart=always:总是跟随docker启动
–privileged=true:获取宿主机root权限
-v /mydata/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /mydata/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \:映射配置目录,宿主机:容器
-e MYSQL_ROOT_PASSWORD=root:指定mysql环境变量,root用户的密码为root
-d mysql:5.7:后台运行mysql容器,版本是5.7
查看是否启动
docker ps
3、docker安装mysql8
拉取镜像
docker pull mysql:8.0.36
创建docker映射到本地目录
mkdir -p /mydata/mysql8/data /mydata/mysql8/log /mydata/mysql8/conf
vi /mydata/mysql8/conf/my.cnf
需要注意的是,
MYSQL8以上已经取消了NO_AUTO_CREATE_USER,sql_mode中不能包含这个。
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
group_concat_max_len=102400
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
启动
docker run -d \
--privileged=true \
--name mysql8 \
-p 13306:3306 \
--restart=always \
-v /mydata/mysql8/data:/var/lib/mysql \
-v /mydata/mysql8/conf:/etc/mysql/conf.d \
-v /mydata/mysql8/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=root mysql:8.0.36 \