1.小节概述
由于小编经常要与B端管理系统打交道,那么关系型数据库必不可少,关系型数据库以行和列的形式存储数据以便于用户理解,这一系列的行和列被称为表,一组表组成了数据库。商用或开源的关系型数据库有很多,如Oracle、SQL Server、Sybase、DB2、MySQL、PostgreSQL等。本小节将着重记录MySQL(5.7版本)在Windows和Linux操作系统中的相关安装配置。
2.操作步骤
2.1.Windows中安装
1.准备工作:Win操作系统(小编的是64位Win11);MySQL安装包(小编用的版本是mysql-5.7.40-winx64.zip,建议在官网找到对应版本进行下载,这个是zip压缩包非exe可执行文件或msi数据包,所以下面的安装配置步骤类似于绿化版软件安装,但是需要做相应的服务配置)。
2.将下载的.zip文件解压后放到要安装的文件夹中,路径不要有中文命名。打开文件夹,新建配置文件my.ini(可以用Win自带的记事本处理),输入以下配置内容,保存为ANSI格式:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录,依据自己的安装目录设置
basedir=D:\ProgramIdes\MySQLProgram
# 设置mysql数据库的数据的存放目录,依据自己的安装目录设置
datadir=D:\ProgramIdes\MySQLProgram\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
3.打开Windows环境变量设置(计算机右键-->属性-->高级系统设置-->环境变量),在系统变量下的Path中将mysql的bin目录的全路径放里面后确定保存。
4.以管理员身份运行命令提示符,进行MySQL服务的安装和启动:切换到D盘MySQL安装文件的bin目录下,运行 mysqld –install 安装MySQL服务;然后,通过 mysqld --initialize 进行初始化(运行成功后会发现在安装目录下产生data文件夹,未来会存放数据库数据);初始化后,net start MySQL 运行启动MySQL服务。
mysqld –install
mysqld --initialize
net start MySQL
5.成功开启服务以后,进入命令提示符,使用MySQL登录指令:mysql -u root -p 回车,输入临时密码(新版本为了加强安全性,会产生随机密码,在data文件夹中后缀为.err的文件内),登录成功后修改root密码,安装完成。
set password for root@localhost=password('12345678');
6.在Win11中安装完成后,也可以通过客户端工具(此处小编用的Navicat)进行连接,方便后续访问操作MySQL数据库。
2.2.Linux中安装
1.准备工作:CentOS7.9操作系统;MySQL安装包(版本mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar,建议在官网找到对应版本进行下载;SSH客户端工具FinalShell。
安装前注意事项:CentOS7中可能会自带mariadb(MySQL的一个分支),在开始前需要卸载自带的mariadb:查询系统中是否已经有mariadb信息,如果存在则进行相应的卸载。
rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
2.使用FinalShell或者其他SSH工具远程CentOS,新建一个mysql文件目录存放要安装的MySQL。
mkdir /usr/local/mysql
3.上传MySQL安装包(mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar)到上面创建的mysql文件夹下,cd到mysql目录下,进行解压处理;解压完成后,删除安装包。
tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
rm -f mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
4.为了避免出现权限问题,安装前可以给解压文件所在的mysql目录赋予最大权限。
chmod -R 777 mysql
5.严格按照下面的顺序依次进行安装。
rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm
安装过程中可能会遇到的报错情况:
[1] 如果安装过程中出现下图这个错误,就在指令后面添加 --force --nodeps,这可能是由于yum安装了旧版本的GPG keys造成的。
[2] 如果安装过程中出现下图这个错误(一般在阿里云服务器上),运行yum install libaio后继续安装即可。
6.配置和启动MySQL数据库服务:
[1] 用vim打开/etc/my.cnf,增加三行内容:skip-grant-tables(跳过登录验证)、character_set_server=utf8、init_connect='SET NAMES utf8'(设置默认字符集UTF-8),保存后退出vim。
vim /etc/my.cnf
skip-grant-tables
character_set_server=utf8
init_connect='SET NAMES utf8'
[2] 启动mysql服务,并设置开机自启。
systemctl start mysqld.service
[3] 登录mysql(由于配置了跳过登录验证,直接输入mysql指令即可登录进入命令行),设置密码并使之生效,设置完成后退出mysql命令行。
mysql
update mysql.user set authentication_string=password('12345678') where user='root';
flush privileges;
exit;
[4] 停止mysql服务,再次用vim编辑my.cnf配置文件,将skip-grant-tables这一行注释掉(后续登录便需要密码验证了),重启mysql服务。
systemctl stop mysqld.service
vim /etc/my.cnf
systemctl start mysqld.service
[5] 再次登录mysql,如果登录后输入其他命令(如查看数据库show databases;)报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement。此时需要再次重设密码,注意mysql密码策略(如果更改失败可以先设置密码策略为LOW以后再设置密码)。
mysql -uroot -p12345678
set global validate_password_policy=LOW;
set password=password('12345678');
7.设置远程登录:如果想在主机Win上通过Navicat连接虚拟机上mysql服务,可以设置远程登录。
[1] 在上述完成mysql服务安装的CentOS中,登录mysql,设置远程登录:注意by后面的就是远程登录密码,远程登录的密码可以和用户原有密码不一样。
grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;
[2] 远程登录设置后,主机暂时还连接不上虚拟机上的mysql,这是由于虚拟机防火墙打开了,所以需要在CentOS中设置防火墙对3306端口进行放行(当然如果暴力处理的话也可以关闭防火墙)。另外多提一嘴,如果是在云服务器上需要登录云服务器控制台设置安全组策略开放相应的端口。
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
[3] 在本地Win11上通过Navicat连接虚拟机上mysql进行访问操作数据库。
3.小节总结
小节主要讲述了MySQL(版本5.7.40)在Windows和CentOS操作系统中的安装配置步骤,记录了安装过程中涉及到的一些细节点设置(端口、密码、远程访问授权、防火墙等),方便以后用到时随时查看。