暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第8篇:部署MySQL8.0到Windows和Linux系统

编程实践楼 2021-09-30
435

电子图书在线阅读系统就是一个以自己为主导的实战项目,项目涵盖Java WEB前端和后端、移动APP开发、第三方支付、接口等技术。


1、实践目标

通过项目实践,掌握下面的知识点。

  1. Windows 10安装MySQL8.0;

  2. CentOS 7安装MySQL8.0;

  3. 配置MySQL默认字符集;

  4. 配置MySQL远程连接。

2、部署MySQL8.0到Windows 10

MySQL部署到本地计算机,项目连接本地数据库,便于项目开发。

下载MySQL8.0

(1)进入MySQL官网,官网首页如图4-1所示。

图 4-1 MySQL官网

(2)单击官网首页左侧的8.0.16 链接,进入MySQL Community Server 8.0.16下载页面,MySQL Community Server是社区版,它是开源免费的版本。下载页面如图4-2所示。

图 4-2 MySQL下载页面

(3)在MySQL Community Server 8.0.16下载页面中,单击MySQL Install for Windows图形区域,进入Download MySQL Installer页面,如图4-3所示。

图 4-3 MySQL8.0.16下载页面

(4)在Download MySQL Installer页面,有两个安装包,一个是基于WEB的安装包,一个是基于本地的安装包。选择基于本地的安装包,安装包大小为373.4M。安装包支持32位和64位Windows操作系统。单击本地安装包的Download按钮,进入开始下载页面,如图4-4所示。

图 4-4 会员登录页面

(5)下载之前会要求登录或注册账号。如果没有账号或不想注册账号,可以直接单击“No thanks just my download”这句话,意思是“不需要注册,直接下载就行”。

3、安装MySQL8.0

(1)下载完成后,运行安装包,出现如图4-5所示的License页面。此页面要求接受License协议内容。选择接受协议内容,单击Next按钮。

图 4-5 License页面

(2)图4-6要求选择安装选项,接受默认的安装选项即可。

图 4-6 安装选项

(3)图4-7要求选择MySQL安装路径,一般接受默认选项即可,也可以更改安装路径。

图 4-7 安装路径

(4)MySQL安装程序会检测软件环境是否满足安装需求,如果出现图4-8所示的页面,可能需要先安装缺失软件。图4-8提示缺失MySQL for Visual Studio 1.2.8软件,可以忽略提示的缺失软件,直接单击Next按钮即可。

图 4-8 环境检测

(5)图4-9为即将开始安装的软件列表,确保列表中要有MySQL Server 8.0.16,确认后,单击Execute按钮,继续执行下一步。

图 4-9 安装列表

(6)安装完成后,出现如图4-10所示的页面,该页面表示MySQL8.0.16安装已完成,单击Next按钮,进入配置页面。

图 4-10 安装完成

4、配置MySQL8.0

(1)出现图4-11所示的页面,说明进入了MySQL系统的配置过程,单击Next按钮,继续执行下一步。

图 4-11 配置准备

(2)出现图4-12所示的页面,要求选择数据库引擎,选择默认引擎即可。单击Next按钮,继续执行下一步。

图 4-12 选择数据库引擎

(3)出现图4-13所示的页面,要求配置数据库网络,网络采用默认的TCP/IP,端口号采用默认的3306即可。单击Next按钮,继续执行下一步。

图 4-13 配置数据库网络

(4)出现图4-14所示的页面,要求配置数据库认证方式,设置密码强度。选择图4-14所示的认证方式。

图 4-14 数据库认证方式

(5)图4-15为设置root账号登录密码,该密码一定要记住。使用root账号登录数据库时需要该密码。

图 4-15 设置账号登录密码

(6)图4-16将MySQL服务配置为Windows服务,可以在Windows启动时,自动启动服务。服务名需要记住,以后可能会用到。采用默认名称即可。单击Next按钮,继续执行下一步。

图 4-16 配置Windows服务

(7)图4-17为应用配置项,单击Execute按钮应用配置项。

图 4-17 应用配置项

(8)出现图4-18所示的页面,说明应用配置项成功,并启动了MySQL Server。

图 4-18 配置成功

(9)图4-19是连接数据库测试页面,登录账号是root,登录密码是在设置root账号登录密码页面中输入的密码。

图 4-19 数据库连接测试

5、配置默认字符集

查看MySQL8.0默认字符集

进入Windows命令行窗口,输入“mysql”命令,若“mysql”命令无效,需要配置Windows环境变量Path,将MySQL安装目录下的bin路径添加到Path变量。路径如下:

C:\Program Files\MySQL\MySQL Server 8.0\bin
复制


在Windows命令行窗口输入命令,如图4-20所示。

mysql -uroot -p
复制


-uroot表示以root账号登录MySQL,-p表示以密码方式登录。在登录过程中会要求你输入密码,root账号的密码就是在安装MySQL过程中,要求输入的root账号的密码。

图 4-20 命令行窗口运行并登录MySQL

输入正确的root账号密码,按下回车键。进入MySQL环境。如图4-21所示。

图 4-21MySQL环境

在MySQL环境下,输入下面的命令,并回车执行该命令:

show variables like '%char%' ;
复制


图4-22给出了MySQL8.0的默认字符集。

图 4-22 MySQL默认字符集

从图4-22可以看出,默认字符集在客户端环境、服务端环境、数据库存储字符编码不一致,这样会导致客户端在显示数据库存储的中文字符时,中文字符会显示为乱码,因此需要将默认字符集统一设置为utf8。

MySQL8.0系列版本中采用的默认字符集可能为utf8mb4,utf8mb4编码是utf8编码的超集,兼容utf8,但会占用较大的存储空间。本项目采用utf8字符集。

配置默认字符集为utf-8

修改默认字符集,需要修改MySQL配置文件my.ini,my.ini文件被安装到下面的路径:

C:\ProgramData\MySQL\MySQL Server 8.0

通过上面的路径,可以找到my.ini文件。

编辑my.ini文件,加入下面的内容。带中括号的是文件内自带的标签如果没有可以自行加上。

[client]

default-character-set=utf8

[mysql]


default-character-set=utf8

[mysqld]


character-set-client-handshake = FALSE

character-set-server = utf8

collation-server = utf8_unicode_ci

init_connect='SET NAMES utf8'

复制


编辑完成后,保存该文件,重启MySQL,查看默认字符集,如图4-23所示。

图 4-23 配置后的默认字符集

6、部署MySQL8.0到CentOS 7

在Web应用中,MySQL数据库必须部署到服务端,读者可以在阿里云、腾讯云或华为云申请云主机试用,或者购买优惠云主机,申请或购买云主机时,操作系统选择CentOS。

远程操作CentOS主机,一般使用远程登录客户端软件,例如Putty、SSH等工具软件。

(1)建立mysql目录

在终端窗口输入并执行下面的命令。如图4-24所示。

图 4-24 建立MySQL目录

(2)下载MySQL8.0压缩包

在终端窗口输入wget命令下载MySQL8.0.21压缩包,压缩包名称为“mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz”。如图4-25所示。

图 4-25 下载MySQL压缩包

(3)解压缩

[root@host mysql]# tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
复制


(4)重命名解压文件夹名称

[root@host mysql]# mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0
复制


(5)在mysql-8.0目录下创建data目录

[root@host mysql]# cd mysql-8.0

[root@host mysql-8.0]
# mkdir data

复制


(6)创建用户组以及用户和密码


[root@host mysql-8.0]# groupadd mysql

[root@host mysql-8.0]
# useradd -g mysql mysql

复制


(7)授权用户

[root@host mysql-8.0]# chown -R mysql.mysql usr/local/mysql/mysql-8.0
复制


(8)初始化基础信息

[root@host mysql-8.0]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize
复制


图 4-26 缺失libnuma.so.1

执行上述命令时,若出现“libnuma.so.1”问题,说明当前系统缺少libnuma.so.1库,需要安装numactl库。如图4-26所示。

[root@host usr]# yum -y install numactl
复制


安装完成后,再次执行上述命令。

图 4-27 MySQL配置成功

需要注意的地方:上图的“jM6)(jfPapjO”是登录MySQL的临时密码,需要记住这个密码,用该密码登录MySQL。如图4-27所示。

(9)修改my.cnf配置文件

my.cnf配置文件在etc目录下,修改MySQL的默认字符集、安装目录和数据目录。

[root@host etc]# vi my.cnf
复制


原my.cnf内容


[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd



[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid



#

# include all files from the config directory

#

!includedir etc/my.cnf.d

复制


修改后的内容。

[mysqld]

datadir=/usr/local/mysql/mysql-8.0/data/

basedir=/usr/local/mysql/mysql-8.0/

socket=/tmp/mysql.sock

character-set-client-handshake = FALSE

character-set-server = utf8

collation-server = utf8_unicode_ci

init_connect='SET NAMES utf8'

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd



#[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

#

# include all files from the config directory

#

!includedir etc/my.cnf.d

复制


(10)配置mysqld服务

将mysql.server复制到 etc/init.d/目录。

[root@host mysql-8.0]# cp -a ./support-files/mysql.server etc/init.d/mysql
复制


(11)授权、添加服务

[root@host mysql-8.0]# chmod +x etc/init.d/mysql

[root@host mysql-8.0]
# chkconfig --add mysql

复制


(12)启动MySQL

启动命令见图4-28。

[root@host mysql-8.0]# /etc/init.d/mysql start
复制


图 4-28 启动MySQL

(13)配置MySQL命令

使用ln命令将mysql软连接到/usr/bin目录。

[root@host mysql-8.0]# ln -s /usr/local/mysql/mysql-8.0/bin/mysql /usr/bin
复制


(14)修改MySQL自动生产的随机密码

使用前面的随机密码登录MySQL。

[root@host mysql-8.0]# mysql -uroot -p

Enter password:

复制


登录成功后,执行下面的MySQL命令,将密码修改为“123456”,也可以修改为其他密码。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
复制


执行 flush privileges;命令,使密码生效。

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

复制


执行下面的MySQL命令,查看默认字符集。如图4-29所示。

mysql>  show variables like 'character_set%';
复制


图 4-29 MySQL默认字符集

(15)配置远程连接

MySQL安装完成后,只允许本地连接数据库服务器,若需要外部计算机连接数据库服务器,需要配置远程连接。

登录MySQL系统,在MySQL环境下,执行下面的MySQL命令。

mysql> use mysql;

Database changed

mysql>
 update user set host='%' where user='root';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0



mysql>
 flush privileges;

Query OK, 0 rows affected (0.00 sec)

复制


若外部计算机连接数据库服务器还是失败,多数原因是CentOS运行了防火墙软件,对外没有开放3306端口,执行防火墙命令,将3306端口对外开放。


文章转载自编程实践楼,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论