【MySQL系列文章】Linux环境下安装部署MySQL
前言
本次安装部署主要针对Linux环境进行安装部署操作,系统位数64
getconf LONG_BIT
64
MySQL版本:v5.7.38
一、下载MySQL
MySQL下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
二、上传MySQL压缩包到Linuxx环境,并解压
2.1、将压缩包上传到指定目录
这里上传到 /usr/local 下
2.2、解压MySQL压缩包
tar -xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
2.3、修改目录名称为mysql
mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
三、创建MySQL用户组、组名
#创建MySQL用户组
groupadd mysql
#添加MySQL用户并添加到MySQL用户组
useradd -r -g mysql mysql
四、创建数据目录并开启权限
4.1、在 /usr/local/mysql 目录下创建data文件夹
4.2、授权属主属组为mysql用户
chown -R mysql:mysql /usr/local/mysql/
五、配置 my.cnf 文件
5.1、编辑my.cnf文件
vi /etc/my.cnf
5.2、my.cnf文件配置模板
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
六、初始化MySQL
6.1、在/usr/local/mysql/bin目录下用mysqld命令
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize
命令说明:
–defaults-file:默认配置文件地址
–datadir:是刚刚创建的data数据目录(自己进行定义的!)
–basedir:是MySQL安装目录(自己进行定义的!)
–user:刚刚创建的mysql用户
红色标注的为mysql登录密码,请记住,并在后续进行修改为自己的。
七、启动MySQL修改初始密码、授权远程连接
7.1、启动服务
/usr/local/mysql/support-files/mysql.server start
7.2、修改初始密码
# 切换目录
cd /usr/local/mysql/bin
# 登录命令
./mysql -u root -p
#修改密码
set password for root@localhost=password('我的密码');
#刷新权限
FLUSH PRIVILEGES;
也可以采用下列简单方式设置密码:
# 设置密码
SET PASSWORD = PASSWORD(‘ok’);
# 设置用户的访问密码用不过期
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
#刷新权限
FLUSH PRIVILEGES;
7.3、授权远程连接
# 访问mysql库
use mysql
# 修改root用户能在任何host访问(授权远程连接)
update user set host = '%' where user = 'root';
# 刷新
FLUSH PRIVILEGES;
八、开启自启动
8.1、依次执行下面命令进行软连接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
8.2、赋予权限、添加服务、显示服务列表
#赋予权限
chmod +x /etc/init.d/mysql
#添加服务
chkconfig --add mysql
#显示服务列表
chkconfig --list
如果2/3/4/5都处于开启状态则成功,不是请运行如下命令:
chkconfig --level 2345 mysql on
8.3、验证是否可以自启动
#查看mysql进程
ps -aux | grep mysql
#kill进程
kill -9 xxxx
#再次查看是否自启动
ps -aux | grep mysql
九、关于远程连接数据库出现2002处理方法
连接时候出现2002错误代码,可能是防火墙没有开启2002端口
可以将防火墙关闭(不建议),或者开放2002端口:
# 开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看已经开放的端口
firewall-cmd --list-ports
十、关于防火墙的命令
1.查看防火墙状态
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
开启防火墙 service firewalld start
若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
2.查看对外开放的端口状态
查询已开放的端口 netstat -ntulp | grep 端口号:可以具体查看某一个端口号
查询指定端口是否已开 firewall-cmd --query-port=666/tcp
提示 yes,表示开启;no表示未开启。
3.对外开发端口
查看想开的端口是否已开:firewall-cmd --query-port=6379/tcp
添加指定需要开放的端口:firewall-cmd --add-port=123/tcp --permanent
重载入添加的端口:firewall-cmd --reload
查询指定端口是否开启成功:firewall-cmd --query-port=123/tcp
移除指定端口:firewall-cmd --permanent --remove-port=123/tcp