一、前言
基于Linux平台的MySQL安装文件有三个版本,分别是RPM软件、GenericBinaries软件包、源码包,具体介绍如下:
①RPM软件包是一种Linux平台下的安装文件,通过相关命令可以很方便地安装与卸载。该软件包分为两个:服务器端和客户端,需要分别下载和安装。在安装时首先需要安装服务器端,再安装客户端。
②Generic Binariesr软件包是一个二进制软件包,经过编译生成的二进制文件软件包。
③源码包是MySQL数据库的源代码,用户需要自己编译生成二进制文件后才能安装。
MySQL官方推荐在Linux平台下使用RPM软件包安装MySQL。本文演示如何使用Generic Binariesr软件包来安装MySQL。
二、MySQL8下载与安装
2.1下载安装包
官网下载地址:MySQL :: Download MySQL Community Server
点击第二个资源的"Download"跳转至下载页面,点击下方的"No thanks,just start my download."即可进行下载(下载MySQL无需登录Oracle账号)。
2.2将安装包上传至服务器
2.2.1将安装包上传至/usr/local
目录并解压
cd /usr/local
ls
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
2.2.2删除安装包
rm -f mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
2.2.3重命名文件夹
mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql-8.0.31
ll
三、MySQL8配置
3.1配置PATH环境变量
3.1.1打开配置文件
vim /etc/profile
3.1.2进入编辑模式
按下A(a)、I(i)、O(o)任意键,即可进入编辑模式。
3.1.3添加环境变量
在配置文件最下方添加如下信息(以具体安装包解压路径为准)。
export PATH=/usr/local/mysql-8.0.31/bin:$PATH
3.1.4保存退出
添加完成后,按下ESC
键,退出编辑模式,进入命令模式;再输入 :
,进入命令行模式,输入wq
回车,即可保存退出。
3.1.5刷新配置文件
source /etc/profile
3.1.6检验环境变量是否配置成功
mysql --version
3.2创建用户组和用户并赋予权限
# 创建用户组和用户
groupadd mysql
useradd -g mysql mysql
# 赋予权限
chown -R mysql.mysql /usr/local/mysql-8.0.31
3.3将MySQL服务添加到系统
cp /usr/local/mysql-8.0.31/support-files/mysql.server /etc/init.d/mysql
可执行以下命令进行确认:
service mysql status
四、MySQL8初始化
4.1创建初始化文件
在 /etc
下创建 my.cnf
文件,用于初始化 MySQL 数据库。
vim /etc/my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /usr/local/mysql-8.0.31
# 数据存放目录
datadir = /usr/local/mysql-8.0.31/data
log-bin = /usr/local/mysql-8.0.31/data/mysql-bin
innodb_data_home_dir =/usr/local/mysql-8.0.31/data
innodb_log_group_home_dir =/usr/local/mysql-8.0.31/data
# 日志及进程数据的存放目录
log-error =/usr/local/mysql-8.0.31/data/mysql.log
pid-file =/usr/local/mysql-8.0.31/data/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及的文件夹,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
添加完成后,按下ESC
键,退出编辑模式,进入命令模式;再输入 :
,进入命令行模式,输入wq
回车,即可保存退出。
4.2初始化MySQL
mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-8.0.31 --datadir=/usr/local/mysql-8.0.31/data --user=mysql --initialize-insecure
命令执行完会生成data文件夹,无需手动新建。
附:可能报如下错误,解决完成后重新执行。
解决方法如下:
检查是否安装libaio,若不存在,安装即可。
# 检查是否安装libaio
rpm -qa|grep libaio
# 安装libaio
yum install -y libaio
4.3启动MySQL
service mysql start
查看MySQL服务状态:
service mysql status
或
ps -ef|grep mysql
4.4进入MySQL
输入mysql -uroot -p
进入mysql,由于4.3执行了未设置随机密码的命令,直接回车即可,下方出现"mysql>"则进入成功。
附:若报以下报错,则说明MySQL服务开启失败,请检查上述步骤是否出错(注意修改路径)。
4.5修改密码
执行以下命令,修改本地root用户密码。
alter user 'root'@'localhost' identified by 'password';
注:MySQL8+版本,update mysql.user set password='password' where user='root';
已不再适用。
刷新权限
flush privileges;
exit
退出,使用新密码进行登录,测试是否改密成功。
至此,MySQL8服务已安装成功。
五、远程客户端连接
1.打开3306端口
登录阿里云控制台,将3306端口加入服务器实例的安全组。
2.创建远程root用户
# 创建用户
CREATE user 'root'@'%';
# 设置密码
alter user 'root'@'%' identified by 'newpassword';
# 授权用户所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
# 刷新权限
FLUSH PRIVILEGES;
附:查看所有用户状态
select user,host,plugin,authentication_string from mysql.user;
3.远程客户端连接
输入服务器地址、用户名和密码,测试连接。