Linux之 Centos7.x上安装mysql5.7.x

最近沉迷于Linux的学习,想试着部署一下自己写的项目,于是乎先要配置好环境,这篇就来讲讲我是怎么配置MySQL环境的

下载MySQL

官网选择合适的下载

传输到远程服务器

1.新建目录 data ,将下载好的MySQL压缩包上传到新建的 data 文件夹中

# cd /
# mkdir data

2.上传操作

下载xftp,连接远程服务器,直接拖拽上传到 data 文件下

安装MySQL

安装前环境准备

查看操作系统版本

查看当前系统版本,是否与下载的MySQL版本相符

# cat /etc/redhat-release

查看是否安装过mysql

1.首先检测Linux操作系统中是否安装了MySQL:

# rpm -qa | grep -i mysql

2.如果有信息出现,则进行删除,命令如下卸载:

# rpm -e --nodeps 包名

注意:卸载后 /var/lib/mysql 中的数据及 /etc/my.cnf 不会删除,确定没用后就手工删除:

# rm -f /etc/my.cnf

# rm -fr /var/lib/mysql

3.查看旧的mysql安装目录

# whereis mysql

4.删除旧的安装目录

# rm -rf 目录名

5.删除完毕后,才能进行安装,否则安装会出错

安装MySQL

解压安装包

进入 /data 将之前上传好的安装包解压,并命名为mysql

# cd /data

# tar -zxvf 安装包 -C /data/

# mv mysql-5.7.xx-linux-glibc2.12-x86_64 mysql

进入mysql,创建data文件夹

配置安装

1.查看mysql用户或用户组是否存在

# id mysql

2.如果存在,需删除用户组和用户

# groupdel mysql
# userdel
-f mysql

3.添加mysql用户组和用户

创建mysql组
# groupadd mysql

查看是否创建成功
# cat /etc/group | grep mysql
创建mysql用户
# useradd -r -g mysql mysql

查看是否创建成功
# cat /etc/passwd | grep mysql

4.给mysql用户设置密码

# passwd mysql

5.给mysql授权(读、写、执行)

# chown -R mysql:mysql /data/mysql

# chmod -R 775 /data/mysql

6.配置my-default.cnf配置文件

进入 mysql/support-files 文件夹的内容,查看是否有 my-default.cnf 配置文件,若没有默认的配置文件,则需手动创建一个 my-default.cnf 配置文件,并添加配置内容

# cd /data/mysql/support-files/
编辑my-default.cnf配置文件
# vi my-default.cnf

编辑内容如下(进入编辑页面,按 i 可编辑修改,按ctrl+c退出,然后 :wq 保存修改

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
# mysql存放的位置
basedir = /data/mysql
# data存放的位置
datadir = /data/mysql/data
bind-address = 0.0.0.0
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 128M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 8M
thread_cache_size = 8
query_cache_size= 16M
max_connections = 213
wait_timeout = 31536000
interactive_timeout = 30
max_connect_errors = 9
long_query_time = 1
tmp_table_size = 16M
#log-bin=mysql-bin
#binlog_format=mixed
#server-id = 1
lower_case_table_names = 1
[mysqldump]
quick
max_allowed_packet = 8M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 12M
sort_buffer_size = 1M
read_buffer = 1M
write_buffer = 1M
[mysqlhotcopy]
interactive-timeout

7.重新授权mysql

# chown -R mysql:mysql /data/mysql

# chmod -R 775 /data/mysql

8.增加配置文件到/etc下

复制 support-files 文件下的 my-default.cnf 文件到 /etc/my.cnf 

# cp my-default.cnf /etc/my.cnf

复制 mysql.server 文件下的 my-default.cnf 文件到 /etc/init.d/mysqld 

# cp mysql.server /etc/init.d/mysqld

9.编辑 mysqld ,修改为mysql的指定路径

# vi /etc/init.d/mysqld
修改内容:

basedir=/data/mysql datadir=/data/mysql/data then basedir=/data/mysql datadir=/data/mysql/data if test -Z "$datadir" then datadir=/data/mysql/data fi sbindir=/data/mysql/bin libexecdir=/data/mysql/bin

9.添加mysql环境变量

# vi /etc/profile
文件末尾添加:

export MYSQL=/data/mysql
export path=$MYSQL/bin:

10.修改后重新生效环境变量

# source /etc/profile

11.初始化数据库操作

# cd /data/mysql/bin
# ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize

- 如果报 error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 错误,就需要 安装libaio

libaio安装命令
# yum install libaio

- 如果报 [ERROR] --initialize specified but the data directory has files in it. Aborting 错误,说明已经执行过一次,需要把 /data/mysql/data 目录删除,重新创建重新授权

# cd /data/mysql
# rm -rf data
# mkdir data
# chown -R mysql:mysql /data/mysql
# chmod -R 775 /data/mysql

然后再执行初始化数据库操作

# cd /data/mysql/bin
# ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize

12.启动mysql服务

# service mysqld start

修改密码

1.关闭mysql服务

# service mysqld stop

2.把 mysql/bin/mysqld_safeusr/local/mysql 换成指定安装的路径名,然后执行下面命令

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

3.此时已经进入免过滤状态,修改root密码

(注:5.6版本user表中密码字段是password,5.7之后改为authentication_string,不再有password)

# mysql
# use mysql;
# update user set authentication_string=PASSWORD('root') where user='root';
# flush privileges;
# exit;

4.第一次登录,还要再次设置密码,修改之后才会创建成功,不然会报 ERROR 1820 (HY000): You must reset your password using ALTER USER statement 错误

# mysql -u root -p 
# alter user 'root'@'localhost' identified by 'root';
# flush privileges;
# exit;

远程连接登录

1.确保3306端口以开放

# show global variables like 'port'

(若不是3306端口可进行修改mysql端口号,# vi /etc/my.cnf 命令进入修改 port=3306 ,保存并重启 # service mysqld restart

2.确保防火墙关闭

CentOS7.x 默认的防火墙firewalle(CentOS6.x默认防火墙是iptables

查看防火墙状态(关闭显示not running,开启显示running)
# firewall-cmd --state

停止防火墙firewall
# systemctl stop firewalld.service

禁止防火墙firewall开机启动(一般用这个)
# systemctl disable firewalld.service

3.修改远程连接权限

不修改的话,远程无法连接上

修改user表中root用户的host,修改后重启服务

# mysql -uroot -p
# use mysql;
# update user set host='%' where user='root';
# exit;
# service mysqld restart

4.添加阿里云安全组

官方文档

设置mysql开机自启动

# chkconfig mysqld on
posted @ 2020-04-01 15:55  如何下笔呢  阅读(303)  评论(0编辑  收藏  举报
levels of contents