1 下载相关安装包解压
下载地址:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
解压
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar
再移动并重命名一下
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql
2 创建mysql用户组和用户并修改权限
创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
3 配置MySQL相关
1 配置my.cnf
vim /etc/my.cnf
内容如下:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
2 初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看密码
cat /data/mysql/mysql.err
启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动!!!
service mysql start
ps -ef|grep mysql
到这里说明mysql已经安装成功了!!
注意启动时会遇到这个问题时:
Starting MySQL.2022-08-28T12:08:13.454031Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
解决方式:
[root@192 bin]# touch /var/log/mariadb/mariadb.log
[root@192 bin]# chown -R mysql:mysql /var/log/mariadb/
[root@192 bin]# service mysql start
Starting MySQL.. SUCCESS!
3 下面修改密码
查看初次生成的原密码:
cat /data/mysql/mysql.err
[root@192 bin]# cat /data/mysql/mysql.err
2022-08-28T11:50:19.587260Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-08-28T11:50:19.624676Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-08-28T11:50:19.680857Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 97487318-26c7-11ed-a06f-000c29cfa754.
2022-08-28T11:50:19.681407Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-08-28T11:50:20.296058Z 0 [Warning] CA certificate ca.pem is self signed.
2022-08-28T11:50:20.693210Z 1 [Note] A temporary password is generated for root@localhost: k?QF8pTi9+YC
首先登录mysql,前面的那个是随机生成的。
./mysql -u root -p #bin目录下
再执行下面三步操作,然后重新登录。
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
4 配置远程连接:
这里主要执行下面三个命令(先登录数据库)
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
配置mysql全局:
ln -s /usr/local/mysql/bin/mysql /usr/bin
5 开放Linux 3306 防火墙
linux开放指定端口命令
方式一
CentOS:
1、开启防火墙
systemctl start firewalld
2、开放指定端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
命令含义:
–zone #作用域
–add-port=6379/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
3、重启防火墙
firewall-cmd --reload
4、查看端口号
netstat -ntlp //查看当前所有tcp端口·
netstat -ntulp |grep 6379 //查看所有1935端口使用情况·
方式二
#开放端口:8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
方式三
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
service iptables restart
在CentOS 7中防火墙已经由firewalld来管理,Centos7默认安装了firewalld,没有安装的可以用yum 命令安装,与iptables区别不小
yum install firewalld firewalld-config
1
查看防火墙状态
[root@localhost /]# systemctl status firewalld //或者 firewall-cmd --state
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) //inactive表示为关闭状态
Docs: man:firewalld(1)
启动防火墙
[root@localhost /]# systemctl start firewalld.service
重启防火墙
firewall-cmd --reload 或者 service firewalld restart
防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent //--permanent永久生效,没有此参数防火墙重启便失效
防火墙关闭开放的3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
禁用防火墙
systemctl stop firewalld
设置开机启动
systemctl enable firewalld
停止并禁用开机启动
systemctl disable firewalld
查看端口列表
firewall-cmd --permanent --list-port