您当前的位置:首页 > 计算机 > 系统应用 > Linux

Centos7.x上安装mysql5.7

时间:12-11来源:作者:点击数:

说明:本文主要描述在centos7上安装mysql5.7.2。安装之前最好将系统/etc/selinux/config文件中设置SELINUX=disabled

压缩版安装

1 查看操作系统版本

cat /etc/redhat-release
在这里插入图片描述

2 安装前的环境准备

查看是否安装过mysql

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

rpm -qa | grep -i mysql
在这里插入图片描述

卸载安装包

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

rpm -e --nodeps 包名

删除老版本mysql的开发头文件和库

rpm -e --nodeps 包名

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

rm -f /etc/my.cnf
rm -fr /var/lib/mysql

删除完成后,才能进行安装,否则安装会出错。

同时也要查看旧的mysql安装目录

whereis mysql

删除旧的安装目录

rm -rf 目录
在这里插入图片描述

3 新建soft目录(soft是本人专门创建的用于存储上传的tar压缩包目录)

cd ~
mkdir soft
cd soft/
在这里插入图片描述

4 安装过程

4.1 安装包准备

安装前先准备好压缩安装包或者到mysq官网下载即可,将安装包上传至root/soft/目录下

在这里插入图片描述

提供mysql安装包网盘资源

链接:https://pan.baidu.com/s/1riVvgzoGe9RXI2Qea4Y4eQ

提取码:yyds

4.2 解压到指定目录下

tar -zxvf 安装包 -C /usr/local

tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz  -C /usr/local/
在这里插入图片描述

目录名太长了,进入/usr/local目录,重命名为mysql

mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
在这里插入图片描述

在mysql目录下面新建目录data

在这里插入图片描述

4.3 查看mysql用户和组 如果存在,需要删除

查看mysql用户或组是否存在

id mysql
在这里插入图片描述

如需删除用户和组,执行下列操作

groupdel mysql
userdel -f mysql

不行就进入 vi /etc/grpup 找到mysql 在其前面加上 #

如下,说明没有用户了

在这里插入图片描述

4.4 添加mysql用户组和用户,并且将mysql用户和mysql组关联

创建mysql组

groupadd mysql

查看是否创建成功

cat /etc/group | grep mysql
在这里插入图片描述

创建mysql用户

useradd -r -g mysql mysql

查看是否创建成功

cat /etc/passwd | grep mysql
在这里插入图片描述

给mysql用户设置密码:mengxuegu1234

passwd mysql
在这里插入图片描述

4.5 给mysql授权,以便能够读写以及执行必要的文件

chown -R mysql:mysql /usr/local/mysql
chmod -R 775 /usr/local/mysql
在这里插入图片描述

4.6 进入mysql/support-files文件夹的内容

查看是否有my-default.cnf配置文件,如果没有默认的配置文件,需要手动创建一个

my-default.cnf

配置文件

在这里插入图片描述

4.7 my-default.cnf配置文件内容可直接复制下面内容

vi my-default.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
#mysql安装目录
basedir = /usr/local/mysql
#mysql数据文件所在位置
datadir = /usr/local/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 = 28800
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

4.8 重新授权

chown -R mysql:mysql /usr/local/mysql
chmod -R 775 /usr/local/mysql

4.9 复制support-files文件下的my-default.cnf和mysql.server,如下

cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld

注意:/etc 目录下的my.cnf文件才是真正mysql的配置文件所在位置

在这里插入图片描述

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

vi /etc/init.d/mysqld

进入编辑页面,按i 可编辑修改,按ctrl+c停止修改,然后 :wq 保存修改

在这里插入图片描述
在这里插入图片描述

4.11 把mysql路径添加到环境变量中,方便操作命令

vi /etc/profile

文件末尾添加

export MYSQL=/usr/local/mysql
export PATH=$PATH:$MYSQL/bin:

4.12 使修改后的profile文件生效

source /etc/profile

4.13 执行数据库初始化操作

执行文件为mysql下bin文件夹中mysql_install_db

basedir为安装目录,datadir为数据文件目录。

注:mysql_install_db在5.6版本中位于scripts文件夹,5.7已经取消该文件夹,合并到bin下:

cd /usr/local/mysql/bin
./mysqld --basedir=/usr/local/mysql --user=mysql --datadir=/usr/local/mysql/data --initialize
在这里插入图片描述

以上安装成功效果

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

yum install libaio

如果报:[ERROR] --initialize specified but the data directory has files in it. Aborting

在这里插入图片描述

说明已经执行过一次,需要把’/usr/local/mysql/data目录删除,重新创建,再授权

[root@centOS mysql]# cd /usr/local/mysql
[root@centOS mysql]# rm -rf data
[root@centOS mysql]# mkdir data
[root@centOS mysql]# chown -R mysql:mysql /usr/local/mysql
[root@centOS mysql]# chmod -R 775 /usr/local/mysql
[root@centOS mysql]#

然后再执行:

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

4.14 完成之后,启动mysql服务

service mysqld start
在这里插入图片描述

此时已经可以启动服务,但整个工程只算完成了一半。

注意:新版的可能会报错,因为mysqld_safe的原因,旧版本安装的时候没有报错,只需要把mysqld_safe中的默认路径修改为自己的目标路径,再执行就可以了。

5 修改密码

5.1 首先关闭服务

service mysqld stop
在这里插入图片描述

5.2把mysql/bin/mysqld_safe中usr/local/mysql换成指定安装的路径名,然后执行下面代码。

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
在这里插入图片描述

此时已经进入免过滤状态,开始修改root密码。注:5.6版本user表中密码字段是password,5.7之后改为authentication_string,不再有password。

以上设置的密码就是我们登录mysql的密码root

[root@localhost bin]# mysql

mysql> use mysql;

mysql> update user set authentication_string=PASSWORD('root') where user='root';

mysql> flush privileges;

mysql> exit;
在这里插入图片描述

此时,密码已经修改完成。退出重新登录,本以为搞定了,但是创建数据库,却报错了,错误是:ERROR 1820 (HY000): You must reset your password using ALTER USER statement。原来第一登录,还要再次设置密码,修改之后,创建成功。

mysql -u root -p
mysql> alter user 'root'@'localhost' identified by 'root';
mysql> flush privileges;
mysql> exit;
在这里插入图片描述

设置远程登录权限

如果远程连接登录,会报错误的

如下:

在这里插入图片描述

1 确定mysql端口号,

mysql> show global variables like 'port';
在这里插入图片描述

0 默认就是3306

如果不是3306可进行修改mysql端口号

1.# vi /etc/my.cnf
2.修改 port=3306
3.重启 # service mysqld restart
在这里插入图片描述

2 修改远程连接权限,

很简单,只需要修改user表中root用户的host就可以了。改完之后,记得重启一下服务,再次远程连接

# mysql -uroot -p
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> exit;
# service mysqld restart
在这里插入图片描述

3关闭防火墙,

如果还连不上报10060 unknown error ,则关闭它

在这里插入图片描述

CentOS7.x 默认的防火墙不是iptables,而是firewalle.

查看防火墙状态(关闭后显示not running,开启后显示running)

firewall-cmd --state

停止防火墙firewall

systemctl stop firewalld.service

禁止防火墙firewall开机启动

systemctl disable firewalld.service
在这里插入图片描述

CentOS6默认的防火墙是iptables

1。防火墙即时生效,重启后复原:

关闭

service iptables stop

开启

service iptables start

2。防火墙永久性生效,重启后不会复原

关闭:

chkconfig iptables off

开启:

chkconfig iptables on

3 设置mysql开机自启动

chkconfig mysqld on

启动mysql服务

service mysqld start

关闭mysql服务

service mysqld stop

重启mysql服务

service mysqld restart
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门