MySQL8.0.20 双系统安装

MySQL 安装教程


注意事项

  •  文档的cmd命令不要复制,可能会出错,是富文本编辑器的空格造成。
  •  使用jdk11需更新MySQL8.0.16以上(包含)
  •  MySQL 修复 jdk 11 bug 参考: 链接

MySQL 8 之前版本参考

windows 10 安装 

 1.下载

     https://dev.mysql.com/downloads/mysql/


2.卸载之前的MySQL 

   以管理员身份运行cmd 执行

  • 数据库复制备份参考官方: 链接
  • net stop mysql 停止服务
  • mysqld --remove mysql 删除服务
  • 删除例如D:\Program Files\MySQL的目录
  • 这就是压缩包安装的好用,可执行文件卸载出错可能还需要重装系统

3.安装

  • mysql-8.0.20-winx64.zip 解压到D:\Program Files
  • 将解压之后的目录mysql-8.0.20重命名为MySQL
  • MySQL目录下新建my.ini配置文件,打开添加以下内容
  • 注: utf8mb4是utf-8的升级支持emoji库的存储及表情,请勿使用utf8 linux下出错  win10下警告。
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\Program Files\MySQL
# 设置mysql数据库的数据的存放目录
datadir=D:\Program Files\MySQL\data
# 允许最大连接数
max_connections=2000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#超时设置
wait_timeout=2147483
interactive_timeout=2147483
#设置默认时区
default-time_zone ='+8:00' 
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
 
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

3.配置环境变量

    D:\Program Files\MySQL\bin 添加到环境变量path中


4.安装服务

  • 以管理员身份运行cmd否则会失败
  • 执行mysqld --initialize --console
  • error: Found option without preceding group in config file
  • 原因是my.ini 文件可能是UTF-8编码,打开记事本选择另存为选择编码ANSI
  • 执行成功会显示临时密码,root@localhost: IuWlms_/B0Kp
  • IuWlms_/B0Kp 为临时密码
  • 安装服务mysqld --install
  • 启动服务net start mysql
  • 登录 mysql -u root  -p  回车输入密码
  • IuWlms_/B0Kp
  • 修改密码
  • alter user 'root'@'localhost' IDENTIFIED BY '密码';
  • 注意:密码不能为root,win10 MySQL 版本无强制密码策略(密码策略参考CentOS安装)

5.配置访问权限(允许其它主机访问)

 需先登录

  • Use mysql
  • Update user set host=’%’ where user=’root’;
  • Select host,user from user;
  • Flush privileges;

 注意:以后的修改密码变成

  • alter user 'root'@'%' IDENTIFIED BY '密码';

CentOS 8 安装 

 1.下载

     https://dev.mysql.com/downloads/mysql/

 

 


2.上传

  • 解压 mysql-8.0.20-1.el8.x86_64.rpm-bundle.tar,以下4个文件必须安装

          

  • 使用Xftp上传到CentOS 的 例如: /opt/packages目录下
  • mkdir /opt/packages 创建目录

3.安装

  •  cd /opt/packages/  执行以下命令进行安装
  • rpm -ivh mysql-community-common-8.0.20-1.el8.x86_64.rpm --nodeps 
  • rpm -ivh mysql-community-libs-8.0.20-1.el8.x86_64.rpm --nodeps 
  • rpm -ivh mysql-community-client-8.0.20-1.el8.x86_64.rpm --nodeps 
  • rpm -ivh mysql-community-server-8.0.20-1.el8.x86_64.rpm --nodeps

4.编辑配置文件

  • 编辑my.cnf
  • vi /etc/my.cnf 
  • i在当前行编辑
  • 注:utf8mb4 是utf-8的升级支持emoji库的存储及表情,请勿使用utf8 centos下出错  win10下警告
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
 
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
 
#端口
port=3306
 
#mysql默认的安装路径
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
 
# 允许最大连接数
max_connections=2000
 
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
 
# 服务端使用的字符集
character-set-server=utf8mb4
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
 
#超时设置
wait_timeout=2147483
interactive_timeout=2147483
 
#设置默认时区
default-time_zone ='+8:00'
 
#日志输出文件
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[mysql]
default-character-set=utf8mb4
 
[client]
port=3306
default-character-set=utf8mb4
  • ESC键输入:wq 退出并退出

5.启动服务

  • 启动服务:systemctl start mysqld  
  • 警告: 不建议使用 service mysqld restart 会重定向到 systemctl start mysqld
  • 查看服务状态:systemctl status mysqld
  • 查看临时密码:grep 'password' /var/log/mysqld.log | head -n 1

 


6.登录

  • mysql  -u root  -p 
  • 注意:在p后面不要跟密码,8版本会登录失败,回车再输入密码
  • 注意:mysql连接失败也可能是 default_authentication_plugin=mysql_native_password 没有配置,参考 4.编辑配置文件

7.修改密码策略

  • 注意:只有Linux版本mysql有强制密码策略
  •  mysql 8 和mysql7密码策略区别
  • mysql8 例如密码长度:set global validate_password.length=6;
  • mysql7 例如密码长度:set global validate_password_length=6;
  • 查看密码策略 : show variables like 'validate_password%'; 
  • 注意:必须修改密码才能查看密码策略

       

  • 可修改的密码策略
密码验证策略低要求
set global validate_password.policy=LOW;(0或LOW代表低级)
密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=0;
密码至少要包含的数字个数。
set global validate_password.number_count=0; 
密码至少要包含的特殊字符数
set global validate_password.special_char_count=0; 
密码长度
set global validate_password.length=6;  

8.修改密码

  • 修改过密码策略就可以使用简单的密码了
  • alter user 'root'@'localhost' IDENTIFIED BY '密码';
  • 注意:密码不能使用root

9.修改mysql访问权限

  • 登录之后
  • Use mysql
  • update user set host='%' where user ='root';
  • select host,user from user;
  • Flush privileges;

10.CentOS 8 防护墙命令

  • sudo firewall-cmd --zone=public  --add-service=http --permanent  #添加开放的服务
  • sudo firewall-cmd  --zone=public --add-port=3306/tcp --permanent  #添加开放的端口
  • firewall-cmd --zone= public --query-port=80/tcp #查看是否开放
  • firewall-cmd --zone= public --remove-port=80/tcp --permanent # 删除
  • firewall-cmd --reload # 重新载入,更新防火墙规则

描述:

  • --zone=public #作用域
  • --add-port=3306/tcp  #添加端口,格式为:端口/通讯协议
  • --permanent   #永久生效,没有此参数重启后失效

11.防火墙开放MySQL端口

  • 为了安全起见开放端口即可,防火墙不需要关闭
  • sudo firewall-cmd --list-all ( 查看开放端口)
  • sudo firewall-cmd --zone=public  --add-service=http --permanent 
  • sudo firewall-cmd  --zone=public --add-port=3306/tcp --permanent  
  • firewall-cmd --reload

12.开启服务

  • systemctl enable mysqld

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章