Linux 系统安装 Mysql 8.0.30
1、MySQL Community Downloads
下载地址:[https://dev.mysql.com/downloads/mysql/]
我选择的是 Linux - Generic 下面的 Linux - Generic (glibc 2.12) (x86, 64-bit), Compressed TAR Archive 版本(压缩TAR存档版本)
参考界面:

2、安装
需要准备工具:Xshell 7 、Xftp 7 或者其它工具
2.1、 压缩TAR存档版本的安装
2.1.1、新建安装程序文件所在的目标文件夹。
一般程序放在 /usr/local/mysql/ 目录,数据文件放在 /usr/local/mysql/data/。data 文件夹不用建立了,mysql8 在初始化会自己建立。
- 新建目标目录可以用命令 mkdir mysql 或者利用xftp 工具 右键新建文件夹实现
(1) 切换到 /usr/local/ 目录
cd /usr/local/
(2) 新建mysql文件夹
mkdir mysql
终端命令行实现:

2.1.2、新上传压缩TAR存档版本的文件并且解压文件
(1) 上传:我是利用Xftp 7工具上传。
(2) 解压缩文件
命令:tar -xvf 压缩文件名.tar.gz 这个文件不是gzip格式的,使用tar -xvf来解压就好了。
tar -xvf mysql8.tar.xz
我的安装文件名上传前已经重新命名“mysql8.tar.xz”.
参考运行结果:

(3) 修改解压后文件夹名:
利用命令:mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql8 或者Xftp工具 重命名
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql8
最终成果:


重命名的目的方便修改配置文件,自己安装的mysql 服务器配置基本都一个模式下来,方便维护。
2.1.3、分别创建用户组以及用户并授权(如果提示已存在说明之前有创建过了)—目的为了安全
建立mysql组 :命令 groupadd 组名
建立mysql用户: 命令 useradd -g 组名 用户名
用户名建议用mysql
(1) 执行下面代码 增加 mysqlgroup 组
groupadd mysqlgroup
(2) 执行下面代码 在 mysqlgroup 组增加 mysql用户 (假如不用mysqlsql修改后会引起初始化警告错误)
useradd -g mysqlgroup mysql
(3) 进行用户授权
chown -R mysql.mysqlgroup /usr/local/mysql/mysql8
chown -R mysql.mysqlgroup /var/log/mysql
参考运行结果:

2.1.4、 配置环境,编辑/etc/profile文件
命令 vim /etc/profile
vim /etc/profile
(按键 insert 后向下移动光标到最后一行,换行加入下面代码 ;esc 按键 打出“:wq”,用来保存文件并退出)
在最后一行加
export PATH=$PATH:/usr/local/mysql/mysql8/bin:/usr/local/mysql/mysql8/lib
添加好后不要忘记刷新一下
source /etc/profile
查看环境变量是否添加成功
命令 echo $PATH
echo $PATH
参考运行结果:

2.1.5、 编辑my.cnf文件 (或者直接上传编辑好的my.cnf文件)
注意相关目录根据自己的进行修改。
[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
#port=3306
#server-id=3306
#skip-grant-tables
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql/mysql8
datadir=/usr/local/mysql/data
log-bin=/usr/local/mysql/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
#default_authentication_plugin=mysql_native_password
#“default_authentication_plugin”已被弃用,将在未来版本中删除。请改用authentication_policy。
authentication_policy= mysql_native_password
#symbolic-links=0
#默认情况下,使用--skip符号链接(或等效链接)禁用符号链接。考虑不使用此选项,因为它已被弃用,将在将来的版本中删除。
# Disabling symbolic-links is recommended to prevent assorted security risks
# 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=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
#
# include all files from the config directory
2.1.6、 初始化数据库
(注意修改自己的目录)
(方法一)切换到 /usr/local/mysql/mysql8/bin 目录
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql8 --datadir=/usr/local/mysql/data/ --initialize
(方法二)运行命令 mysqld --user=mysql --basedir=/usr/local/mysql/mysql8 --datadir=/usr/local/mysql/data/ --initialize
mysqld --user=mysql --basedir=/usr/local/mysql/mysql8 --datadir=/usr/local/mysql/data/ --initialize
参考执行结果:

注意:最后面一行 root@localhost: 后面是对应的密码 LfesoHkn,3Jv
2.1.7、 初始化数据库 增加开机启动服务
(1) 将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/mysql8/support-files/mysql.server /etc/init.d/mysql
(2) 赋予可执行权限
chmod +x /etc/init.d/mysql
(3) 添加服务
chkconfig --add mysql
(4) 显示服务列表
chkconfig --list
(5) 查看启动项:
chkconfig --list | grep -i mysql
(6) 检查一下/var/lib/mysql是否存在,否则进行创建
mkdir /var/lib/mysql
(7) 授权
chown -R mysql:mysqlgroup /var/lib/mysql/
(8) 启动数据库,有SUCCESS字眼说明MySQL安装完成
命令 service mysql start
service mysql start
3、配置Mysql、防火墙
3.1、配置压缩TAR存档版的mysql
3.1.1、修改默认密码
(1) 登录mysql
mysql -uroot -p
输入mysql 初始化后的密码
(2)运行sql语句
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
(3) 执行flush privileges; 使密码生效
flush privileges;
(4) 选择数据库
use mysql;
(5) 再修改远程连接并生效
update user set host='%' where user='root';
(6) 执行提交命令,搞定!
flush privileges;
(7) 查看用户是否支持远程连接
select host, user ,authentication_string, plugin from user;
参考执行界面:

3.2、 配置linux防火墙
3.2.1、centos 系统防火墙打开3306端口 (如打开跳过)
(1) 查看firewall的状态
firewall-cmd --state
(2) 开放80端口
firewall-cmd --permanent --add-port=3306/tcp
(3) 查看防火墙的开放的端口
firewall-cmd --permanent --list-ports
(4) 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
参考界面:

最后就可以使用root账号去登录mysql了。如果有遇到问题的小伙伴评论留言,文中如有遗漏错误,欢迎指正。
3、常见错误
3.1、缺少libncurses.so.5
我用的腾讯云服务器
执行命令:mysql -u root -p
出现错误:error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file

centos 系统解决方法:
yum provides libncurses.so.5
yum provides libncurses.so.5
ubuntu系统解决
sudo apt install apt-file
sudo apt-file update
sudo apt-file find libncurses.so.5
sudo apt install libncurses5
sudo apt install libncurses*
3.2、缺少目标文件夹
mysql 默认日志放在/var/log/mysql/文件夹下,初始化之前需要人工新建。
错误提示 /var/log/mysql/mysql.log’ not found (OS errno 2 - No such file or directory)
解决方法:创建该文件夹。
3.2、my.cnf 里面mysql 用户名如果和新建的不一致就会产生下面错误。
错误界面

正确界面:

解决方法:my.cnf 里面的参数user=mysql 与新建的mysql 用户名保持一致。 最好就用mysql 否则初始化也出现警告错误。
3.2、配置文件参数舍弃
#“default_authentication_plugin”已被弃用,将在未来版本中删除。请改用authentication_policy。
authentication_policy= mysql_native_password
#symbolic-links=0
#默认情况下,使用–skip符号链接(或等效链接)禁用符号链接。考虑不使用此选项,因为它已被弃用,将在将来的版本中删除。
中文标注的需要修改,因为mysql 8.0.30 以后不支持了。
3.2、解压错误
假如使用tar -zxvf 压缩文件名.tar.gz会出现如下错误:

原因这个文件不是gzip格式的,不能使用tar -zxvf 来解压缩
解决方法:使用tar -xvf来解压就好了。
命令:tar -xvf 压缩文件名.tar.gz
tar -xvf mysql8.tar.xz