MySQL官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载后上传到Linux,我放在/u01/mysql,你们随意
创建文件目录、数据目录并赋予权限
mkdir -p /u01/mysql #创建文件目录
mkdir -p /u01/mysql/data #创建数据目录
chown mysql:mysql -R /u01/mysql/data #赋予权限
解压
tar -xvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
配置my.cnf
vim /etc/my.cnf
大概配置如下,注意自己的路径位置
bind-address=0.0.0.0
port=3306
user=root
basedir=/u01/mysql/mysql-5.7.31-linux-glibc2.12-x86_64
datadir=/u01/mysql/data
socket=/u01/mysql/mysql.sock
log-error=/u01/mysql/data/mysql.err
pid-file=/u01/mysql/data/mysql.pid
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
初始化数据库
进入mysql的bin目录,注意自己的路径:
cd /u01/mysql/mysql-5.7.31-linux-glibc2.12-x86_64/bin
初始化:
./mysqld --defaults-file=/etc/my.cnf --pid-file=/u01/mysql/data/mysql.pid --basedir=/u01/mysql/mysql-5.7.31-linux-glibc2.12-x86_64 --datadir=/u01/mysql/data --user=mysql --initialize
查看密码:
cat /u01/mysql/data/mysql.err
先将mysql.server放置到/etc/init.d/mysql中
cp /u01/mysql/mysql-5.7.31-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
如果启动报错出现如下问题:
解决:vim /etc/my.cnf 修改:user=root ,再重新启动。
可能我是root安装,存在权限问题,具体问题具体分析。
查看启动状态:
ps -ef|grep mysql
到此,说明已经安装成功。
修改MySQL的初始密码
也得先使用随机初始密码登陆,前面已经提到密码位置
./mysql -u root -p #在bin目录下执行
如果出现如下问题,找不到mysql.sock文件 ,其实这个文件的路径,我们在my.cnf中已经配置过,并且在配置的路径中已经生成相应文件,mysql.sock文件默认是在/tmp下,但此路径下没有,数据库启动的时候,系统也默认去这个文件下找mysql.sock文件,故此报错,我的解决是建立一个软连接。
解决:建立一个软连接,把默认位置连接到我的文件所在位置。
ln -s /u01/mysql/mysql.sock /tmp/mysql.sock
如果你不知道自己的mysql.sock文件位置,可以使用以下命令查询:
find / -name mysql.sock
重启mysql后再登陆
#重启mysql
service mysql restart
重置密码等行为:
SET PASSWORD = PASSWORD('123456'); #设置密码
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; #密码到期设置为永不
FLUSH PRIVILEGES; #刷新
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能在任何host访问
FLUSH PRIVILEGES; #刷新
MySQL默认端口3306在防火墙和阿里云中配置
如果没有开启防火墙,此步不用配置
1、添加3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2、重启防火墙
firewall-cmd --reload
其它命令:
0.查看防火墙状态
firewall-cmd --state
1.启动防火墙
systemctl start firewalld
2.禁用防火墙
systemctl stop firewalld
3.设置开机启动
systemctl enable firewalld
4.停止并禁用开机启动
sytemctl disable firewalld
阿里云服务器 3306端口开启: