安装环境:系统是 centos7.5,我这里使用的是5.7.33版本的mysql
# mysql安装包下载
下载版本: 这里使用的是mysql5.7
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
# 上传安装包
将安装包上传到linux服务器
# -P 端口不是默认需要使用此参数
scp -r -P 1985 本地文件地址 root@127.0.0.1:服务器文件地址
2
解压安装包
tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar
注:如解压失败,执行tar -xvf mysql-5.7.33-linux-glibc2.12-x86_64.tar,再执行tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
解压后重命名
# 改名
mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql-5.7.33
# 复制到 /usr/local/ 路径下
mv mysql-5.7.33 /usr/local/
2
3
4
检查mysql组和用户是否存在,如果没有则创建
# 检查用户组
cat /etc/group|grep mysql
# 添加mysql用户组
groupadd mysql
# 添加用户
useradd -r -g mysql mysql
2
3
4
5
6
# 安装mysql,创建data目录
#跳转根目录
cd ~
# 跳转到mysql文件夹
cd /usr/local/mysql-5.7.33
#创建data文件
mkdir data
2
3
4
5
6
7
将/usr/local/mysql-5.7.33的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql-5.7.33
在/usr/local/mysql-5.7.33/support-files目录下创建my_default.cnf mysql 端口更改可将下方port=3306端口更改为设置的端口
vim my_default.cnf
[mysqld]
#设置mysql的安装目录
basedir =/usr/local/mysql-5.7.33
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql-5.7.33/data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /usr/local/mysql-5.7.33/data/mysqld.log
pid-file = /usr/local/mysql-5.7.33/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#忽略大小写(0:大小写敏感;1:大小写不敏感)
lower_case_table_names=1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
拷贝,是否覆盖,是
cp my_default.cnf /etc/my.cnf
初始化Mysql
注意返回上级目录,要在mysql的根目录下执行
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.33/ --datadir=/usr/local/mysql-5.7.33/data/
初始化完成之后查看日志
cat /usr/local/mysql-5.7.33/data/mysqld.log
密码在内容最后,就在这段话,A temporary password is generated for root@localhost: 密码
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
进入mysql并更改密码
cd /usr/local/mysql-5.7.33
./bin/mysql -u root -p
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
如果更改时报错:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',就先查询一下是否已更改,最后执行刷新。
重启mysql生效
service mysql restart
建立文件链接
ln -s /usr/local/mysql5.7.33/bin/mysql /usr/bin/mysql
2
建立mysqldump链接
# 如不知道mysql目录可执行 find / -name mysql -print
ln -fs /usr/local/mysql-5.7.32/bin/mysqldump /usr/bin
2
3
# mysql 常用命令
在linux中输入mysql 切记一定要输入“; ” 下面命令主要是配置mysql允许远程访问使用
mysql -uroot -p
use mysql;
# 查看用户表
select user,host from user;
# 修改密码
update user set authentication_string=password("cbdtelecom.cn") where user="root";
flush privileges;
2
3
4
5
6
7
8
9
10
host 为% 就是允许远程连接,但在公司一定要确定3306端口是否允许远程访问
# Linux下Centos7对外开放端口
一、查看对外开放的端口状态
查询已开放的端口 netstat -anp
查询指定端口是否已开 firewall-cmd --query-port=3306/tcp
提示 yes,表示开启;no表示未开启
二、查看防火墙状态
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
开启防火墙 service firewalld start
若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
三、对外开发端口
查看想开的端口是否已开
firewall-cmd --query-port=3306/tcp
四、添加指定需要开放的端口
firewall-cmd --add-port=3306/tcp --permanent
重载入添加的端口
firewall-cmd --reload
查询指定端口是否开启成功
firewall-cmd --query-port=3306/tcp
五、移除指定端口
firewall-cmd --permanent --remove-port=3306/tcp