一、下载 Mysql 安装文件
官网下载地址:https://downloads.mysql.com/archives/community/
可以直接使用wget命令在服务器进行文件下载(Download按钮右键可以获取下载地址)
#安装wget命令:
yum -y install wget
#定位到存放文件夹:
/usr/local
#下载文件命令:
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
使用ls命令查看 MySQL已下载到 /usr/local目录下。
也可点击Download下载文件到本地,下载完成后在上传文件到服务器,上传方式如下。
方式1:使用命令rz将文件上传到/usr/local路径下,若提示命令未找到,需要执行命令yum install -y lrzsz进行安装
方式2:使用FileZilla Client工具进行上传
二、安装Mysql
解压并删除原有压缩包,解压后重命名为mysql-8.0.22(注意解压.xz压缩包参数是 -xvf参数,解压.gz压缩包参数是-zxvf)
# 解压压缩包:
tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
# 删除压缩包:
rm -rf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
#重命名文件夹:
mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql-8.0.22
为了安全起见,建议用户建立MySQL的用户组和用户名,不要轻易使用root账户启动MySQL服务器。
#创建mysql组
groupadd mysql
#添加用户,并放到mysql组里
useradd -r -g mysql mysql
#查看mysql组的用户
groups mysql
修改mysql目录拥有者为刚建立的mysql用户
cd /usr/local/mysql-8.0.22
chown -R mysql:mysql ./
初始化数据库,初始化完成后一定要复制始化密码,不然很容易打错!!!
#进入到bin目录:
cd /usr/local/mysql-8.0.22/bin
#初始化命令:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.22 --datadir=/usr/local/mysql-8.0.22/data
修改/usr/local/mysql-8.0.22目录和data文件夹的所属用户和用户组
cd /usr/local/mysql-8.0.22
chown -R root:root ./ && chown -R mysql:mysql data
在/usr/local/mysql-8.0.22/support-files目录下创建my-default.cnf ,并修改权限
cd /usr/local/mysql-8.0.22/support-files
touch my-default.cnf
chmod 777 ./my-default.cnf
编辑my-default.cnf
vi /usr/local/mysql-8.0.22/support-files/my-default.cnf
按“i”键进入编辑模式,输入以下配置信息(目录请按实际设置)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置端口
port = 3306
#设置mysql的安装目录
basedir = /usr/local/mysql-8.0.22
#设置mysql的数据目录
datadir = /usr/local/mysql-8.0.22/data
socket = /tmp/mysql.sock
log-error = /usr/local/mysql-8.0.22/data/error.log
pid-file = /usr/local/mysql-8.0.22/data/mysql.pid
tmpdir = /tmp
# 允许最大连接数
max_connections=200
# 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#GROUP_CONCAT最大长度,防止被截取
group_concat_max_len=102400
# 服务端使用的字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 允许创建函数
log_bin_trust_function_creators=1
# 允许最大导入包大小
max_allowed_packet = 800M
#日志文件的大小
innodb_log_file_size=500M
# 默认使用“mysql_native_password”插件认证
default-authentication-plugin = mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
# 设置mysql客户端连接服务端时默认使用的端口和默认字符集
port=3306
default-character-set=utf8
提示:按“i”键开始编辑,按ESC键停止编辑,然后输入":wq"保存编辑并退出,":q!"为放弃编辑并退出
将编辑好的my-default.cnf 复制到 /etc/my.cnf,若存在则覆盖。
cp my-default.cnf /etc/my.cnf
设置开机自启动mysql并注册服务
cd /usr/local/mysql-8.0.22/support-files
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
查看开机自启动是否成功,如下显示则为成功
chkconfig --list mysql
配置Mysql环境变量,使之无需进入bin目录操作,方便启动和停止
vi /etc/profile
在最后添加如下内容:
export PATH=$PATH:/usr/local/mysql-8.0.22/bin:/usr/local/mysql-8.0.22/lib
刷新环境:
source /etc/profile
启动数据库
service mysql start
登录mysql
mysql -uroot -p
此时输入之前生成的密码,输入是不可见的,输入后回车,依次输入以下命令修改默认密码并配置远程登录权限:
#修改密码为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
#允许在任何地方登录,%可换成ip,指定可登录地点
create user 'root'@'%' identified by 'root';
#赋予在任何地点所有数据库的访问权限
grant all privileges on *.* to 'root'@'%';
#刷新权限:
flush privileges;
#退出:
quit;
mysql命令扩展
#启动数据库
service mysql start
#重启数据库
service mysql restart
#停止数据库
service mysql stop
#mysql状态
service mysql status
三、开放防火墙端口
#开放3306端口,--add为开放端口,--remove为移除端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重新载入防火墙
firewall-cmd --reload
#查看端口是否开放成功
firewall-cmd --zone=public --query-port=3306/tcp
#查看所有开放成功的端口
firewall-cmd --zone=public --list-ports
其他防火墙命令
#开启
systemctl start firewalld
#查看状态
systemctl status firewalld
#开机启动
systemctl enable firewalld
#禁用
systemctl disable firewalld
#停用
systemctl stop firewalld