linux 安装mysql5.7压缩版

下载mysql5.7

1.创建存放目录,我是在根目录创建的study

cd /

mkdir study

下载mysql,下载地址https://www.mysql.com/downloads/,选择社区版

 

 

 

 

 

 

 

 

 复制下载地址 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

cd study

下载

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

 解压

tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

在 /usr/local 目录下创建mysql文件夹

mkdir /usr/local/mysql

把刚解压出来的mysql-5.7.31-linux-glibc2.12-x86_64下的所有文件移动到/usr/local/mysql文件夹下

mv mysql-5.7.31-linux-glibc2.12-x86_64/* /usr/local/mysql

结果如下图

 

添加mysql用户组和mysql用户

groupadd mysql

useradd -r -g mysql mysql

 

 

 

 从5.7.18开始不在二进制包中提供my-default.cnf文件,所以这里要查看一下mysql对于配置文件的查找路径,越左优先级越高

进入mysql的bin目录

cd /usr/local/mysql/bin

./mysql --help | grep 'Default options' -A 1 

 

创建etc目录

 

 mkdir /usr/local/mysql/etc

创建配置文件

touch /usr/local/mysql/etc/my.cnf

编辑配置文件

vi /usr/local/mysql/etc/my.cnf

写入下面内容

[client]
port=3306
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
explicit_defaults_for_timestamp=true
skip-grant-tables
port=3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
max_allowed_packet=16M

 

设置开机启动

复制启动脚本到/etc/rc.d/init.d/目录

cd /usr/local/mysql
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql

增加 mysql 服务控制脚本执行权限

chmod +x /etc/rc.d/init.d/mysql

将 mysql 服务加入到系统服务

chkconfig --add mysql

检查mysqld服务是否已经生效

chkconfig --list mysql

初始化数据库

cd /usr/local/mysql/bin
./mysqld --initialize --console

 

 

 

 启动mysql

service mysql start

 

 启动报错:/var/log/mariadb/mariadb.log日志文件不存。那么创建

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
# 用户组及用户
chown -R mysql:mysql /var/log/mariadb/

再次启动 service mysql start

 

 又报错了/var/lib/mysql目录不存,那么再次创建

mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
因为mysql会在/usr/local/mysql/data目录创建pid文件,所以给mysql用户写入权限
chown -R mysql:mysql /usr/local/mysql/data

再次启动

service mysql start

 

 成功!

再配置一下环境变量

vim /etc/profile
 
 53 PATH=$PATH:/usr/local/mysql/bin
 54 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

刷新

source /etc/profile

检测
echo $PATH

 

设置mysql密码

mysql
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('root') where User='root'; #密码为root
mysql> exit;
修改my.cnf
vim /usr/local/mysql/etc/my.cnf
注释skip-grant-tables这一行
重启mysql
service mysql restart
再次进入mysql刷新权限
mysql -uroot -p
输入刚刚设置的密码
mysql> alter user 'root'@'localhost' identified by 'root';
设置mysql远程访问
mysql> grant all privileges  on *.* to root@'%' identified by "root";
mysql> flush privileges;

 如果提示请修改初始密码,要执行

 

 alter user user() identified by "root"; #密码为root

 

-- 配置远程访问
-- 防火墙端口设置,便于远程访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
-- 查看端口
firewall-cmd --list-ports

启动防火墙服务:systemctl ummask firewalld
启动防火墙:systemctl start firewalld
posted @ 2020-08-13 09:18  龙影123  阅读(674)  评论(0)    收藏  举报