共计 6160 个字符,预计需要花费 16 分钟才能阅读完成。
MySQL 8.0 正式版已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!下面来记录一下安装过程和遇到的问题以及解决方案!
MySQL8下载地址:MySQL :: Download MySQL Community Server
MySQL8中文官网:MySQL
Windows系统安装
前期准备工作
下载官网的zip压缩文件
解压到指定目录,例如这里解压到D盘根目录:
创建mysql数据库的数据的存放目录,这里演示创建data作为演示
MySQL根目录下,新建文本文件,重命名文件为my.ini配置下面内容,MySQL安装目录和数据存放目录记得修改一下,保存时记得选择编码格式为ANSI编码。
[mysqld]
# 设置3306端口
port=3306
# 设置不区分大小写
lower_case_table_names=1
innodb_file_per_table=ON
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'
innodb_strict_mode=OFF
max_allowed_packet=1024M
# 定时清理数据库日志
log-bin=mysql-bin
binlog_expire_logs_seconds=864000
# 设置远程登录
bind-address=0.0.0.0
#设置mysql的安装目录
basedir=D:\mysql-8.0.32-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.32-winx64\data
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
MySQL配置文件详解:MySQL 配置文件 my.cnf / my.ini 逐行详解-阿里云开发者社区 (aliyun.com)
配置MySQL环境变量:
安装数据库
打开CMD命令行,需要以管理员身份运行,输入初始化命令:
mysqld --initialize --console
安装MySQL服务,并启动MySQL
mysqld --install
net start mysql
如果想自定义MySQL服务名,在 install 参数后面添加自定义服务名称即可,例如:mysqld --install MySQL8
登录MySQL,输入命令:
mysql -uroot -pjQCl-rywF6o9 ## 注意这里的密码为你的随机密码
##登录参数详解:-hIP地址 -u登录名 -p登录密码 -P端口号
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
## 修改root账号密码为【123】
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
Query OK, 0 rows affected (0.00 sec)
## 修改root账号密码规则,密码和上面修改的保持一致
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)
## 切换到mysql数据库对root用户进行权限配置
mysql> use mysql
Database changed
## 设置root用户任意IP地址可以进行连接
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.03 sec)
## 授权超级管理员
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
## 刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
## 退出
mysql> exit
Bye
使用客户端进行连接:
Windows安装到此结束!!!
注意事项
1、初始化时,提示缺少DLL文件,解决方案,安装Microsoft Visual C++
最新受支持的 Visual C++ 可再发行程序包下载 | Microsoft Learn
2、检查配置文件,配置文件编码是否为ANSI,而不是GBK或者UTF-8
3、检查端口是否被占用,cmd命令行输入:netstat -aon|findstr “端口号” 查看端口是否被占用
Linux系统安装
前期准备工作
这里演示系统为centos7,检查Mysql安装包和依赖包:
rpm -qa |grep mysql
如果有删除上面的安装包和依赖包:
sudo yum remove mysql*
检查是否存在Mariadb,若是存在直接删除Mariadb
// 检查是否存在Mariadb
rpm -qa |grep mariadb
// 删除Mariadb
sudo rpm -e --nodeps mariadb*
删除Mysql的配置文件
rm -rf /etc/my.*
安装常用工具:
yum -y install wget unzip net-tools lsof vim
检查系统的glibc版本,输入此命令查看:
ldd --version
这里演示系统的glibc版本是2.17,如果你的glibc版本低于2.17但是高于2.12,就选择2.12的版本。根据你的操作系统自行判断下载。
配置依赖环境
-
如果您以前使用您的操作安装了 MySQL 系统原生包管理系统,如 Yum 或 APT, 使用本机二进制文件进行安装时可能会遇到问题。 确保您以前的MySQL安装已被删除 完全(使用您的包管理系统),并且任何 其他文件,例如数据文件的旧版本, 也被删除了。您还应该检查 配置文件,如或目录和删除 他们。
/etc/my.cnf 或者 /etc/mysql
-
MySQL依赖于库。数据目录初始化和后续服务器 如果未在本地安装此库,则启动步骤将失败。 如有必要,请使用适当的软件包进行安装 经理。例如,在基于 Yum 的系统上:
libaio
$> yum search libaio # search for info $> yum install libaio # install library
或者,在基于 APT 的系统上:
$> apt-cache search libaio # search for info $> apt-get install libaio1 # install library
-
*Oracle Linux 8 / Red Hat 8* (EL8):默认情况下,这些平台不安装文件,这是必需的 由 MySQL 客户端 bin/mysql 用于包和 . 要变通解决此问题,请安装软件包:
/lib64/libtinfo.so.5
mysql-VERSION-el7-x86_64.tar.gz
mysql-VERSION-linux-glibc2.12-x86_64.tar.xz
ncurses-compat-libs
$> yum install ncurses-compat-libs
安装数据库
进入到MySQL压缩包目录,解压到local目录下或者opt目录下,或者你想指定的目录下面:
tar -xvf mysql-8.0.32-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/ ## 解压到usr/local目录下面
重命名MySQL目录名称:
mv /usr/local/mysql-8.0.32-linux-glibc2.17-x86_64-minimal/ /usr/local/mysql
创建MySQL用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建数据存放目录和tmp目录,这里存放目录名为data
mkdir /usr/local/mysql/data /usr/local/mysql/tmp
编辑MySQL配置文件my.cnf,输入命令vim /etc/my.cnf,输入下面的内容,Linux下的内容略有不同,记得修改安装路径和数据存放目录!!!
[mysqld]
# 设置端口
port=3306
# 设置不区分大小写
lower_case_table_names=1
innodb_file_per_table=ON
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'
innodb_strict_mode=OFF
max_allowed_packet=1024M
# 定时清理数据库日志
log-bin=mysql-bin
binlog_expire_logs_seconds=864000
# 设置远程登录
bind-address=0.0.0.0
#设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
socket =/usr/local/mysql/tmp/mysql.sock
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
socket =/usr/local/mysql/tmp/mysql.sock
default-character-set=utf8mb4
修改目录权限,和用户组
chmod -R 750 /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
初始化数据库,进入到MySQL的bin目录下,执行初始化命令:
cd /usr/local/mysql/bin
./mysqld --initialize --console --user=mysql
和Windows一样,保存好随机密码!!!
启动MySQL:
cd /usr/local/mysql/support-files
./mysql.server start
配置环境变量:vim /etc/profile
按 i 进行编辑,在最后添加以下变量:
#MYSQL_HOME
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
按 esc 退出编辑,再按 shift + : 显示,再按 wq 保存并退出
重新加载/etc/profile文件:
source /etc/profile
登录MySQL,输入命令:
mysql -uroot -pjQCl-rywF6o9 ## 注意这里的密码为你的随机密码
##登录参数详解:-hIP地址 -u登录名 -p登录密码 -P端口号
之后就和Windows的配置过程一样,按照之前的操作在来一遍就行了,配置root用户,更改密码配置远程访问,还有授权超级管理员!
防火墙放行数据库端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
配置完成后,拿连接工具测试一下!!!
配置MySQL自启动:
[root@localhost support-files]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost support-files]# chmod +x /etc/init.d/mysql
[root@localhost support-files]# systemctl enable mysql
mysql.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysql on
注意事项
1、检查好操作系统依赖环境
2、检查好配置文件
3、检查好目录权限和用户组,不然数据库会启动不了
4、权限都配置好了,还是启动不了,查看端口是否被占用命令:netstat -tunlp |grep 3306 或者使用该命令查看:lsof -i:3306
完结撒花❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀