频道栏目
首页 > 资讯 > Linux > 正文

Linux系统下centos6.4安装mysql5.7.21教程

18-03-27        来源:[db:作者]  
收藏   我要投稿

准备工作:

环境:linux

系统:centos6.4-x86-x64

安装工具:mysql-5.7.21-x86-64

软件下载:

mysql

或者:mysql-5.7.21二进制包

或者linux下使用wget下载:

wget -xp

准备工作:

1.安装wget插件:

命令:sudo yum -y install wget

2.Centos6.4更换yum的源为阿里源

1.源所在目录:/etc/yum.repos.d/

备份源文件:

cp -rp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载新的CentOS-Base.repo到/etc/yum.repos.d/

CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.yum clean all

4.yum makecache

到此源安装完成

linux安装mysql方式有很多,这里本人安装方式为二进制安装方式,个人喜欢的原因:安装目录根据自己喜好,配置自己配置。

检查操作系统上是否已经安装了mysql数据库

rpm -qa|grep mysql

显示版本:

mysql57-community-release-el7-8.noarch

删除已经存在的版本

rpm -e --nodeps mysql57-community-release-el7-8.noarch

检查删除是否成功

rpm -qa|grep mysql

查看yum上提供的mysql数据库版本

yum list|grep mysql

若你的系统上已经安装了mysql如现有mysql版本是5.6,现在想安装mysql5.7版本则可以进行如下操作:

#检查mysql

find / -name mysql

#删除已经安装的mysql

find / -name "*mysql*" | xargs rm -rf

注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

rm -rf /etc/my.cnf

将下载的安装包"mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz"利用xftp上传至/opt目录下,然后解压,重新命名,移动mysql目录下

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

mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql-5.7.21

mkdir mysql

mv /opt/mysql-5.7.21 /opt/mysql

以下截图为我本地mysql5.7.21目录(/opt/mysql/mysq-5.7.21)

在上图该目录下创建data目录,用于数据库存放

cd /opt/mysql/mysql-5.7.21

#创建data目录,数据库存放目录

mkdir data

ls -l

如下截图:

创建mysql用户组和mysql用户

#查看有没有mysql组

cat /etc/group | grep mysql

查看有没有mysql用户

cat /etc/passwd |grep mysql

若没有则创建mysql组

#创建mysql用户组

groupadd mysql

#创建mysql用户并添加到mysql用户组中(//useradd -r参数表示mysql用户是系统用户,不可用于登录系统;第一个mysql是用户组,第二个mysql是用户)

useradd -r -g mysql mysql

#检查用户组是否创建成功

groups mysql

设置mysql目录访问权限,用户组

#将mysql目录访问权限赋为myql用户

chown -R mysql /opt/mysql/mysql-5.7.21/

#改变mysql目录的用户组属于mysql组

chgrp -R mysql /opt/mysql/mysql-5.7.21/

#查看mysql目录下所有的目录及文件夹所属组合用户

cd /opt/mysql/mysql-5.7.21

ls -l

效果如下截图:会发现这里的用户,用户组均发生了改变,均由root变成mysql用户,用户组

创建以下文件,设置访问权限,用于mysql配置中

创建文件/tmp/mysql.sock

赋值权限:

chown -R mysql:mysql /tmp/mysql.sock

chmod 755 /opt/mysql-5.7.21/tmp/mysql.sock

创建文件:/opt/mall/mysql/log/mysqld.log

赋值权限:

chown -R mysql:mysql /opt/mall/mysql/log/mysqld.log

chmod 755 /opt/mall/mysql/log/mysqld.log

创建文件:/opt/mall/mysql/run/mysqld.pid

赋值权限:

chown -R mysql:mysql /opt/mall/mysql/run/mysqld.pid

chmod 755 /opt/mall/mysql/run/mysqld.pid

备注:

chmod:用于改变文件或目录的访问权限,一般用来用户用它控制文件或目录的访问权限

chmod 755 /tmp/mysql.sock

chown:将某个目录下文件及目录修改为某个用户组

chgrp:将某个目录下文件及目录修改为某个组

-R处理指定目录以及其子目录下的所有文件

chown -R mysql .把当前目录下文件及目录的属主改为mysql用户

chgrp -R mysql .把当前目录下文件及目录所属组改为mysql组

安装和初始化数据库

cd /opt/mysql/mysql-5.7.21

bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.21 --datadir=/opt/mysql/mysql-5.7.21/data

执行后报:

错误信息:

error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

解决方法:

原因:

yum安装的是libnuma.so.1,但安装时默认安装的是32的,而db2需要的是64位的

1.如果已经安装了libnuma.so.1,先yum remove libnuma.so.1

2.安装依赖包 yum -y install numactl.x86_64

备注:

SLES 11:从MySQL 5.7.19开始,Linux通用tar包的格式是EL6而不是EL5,以致于MySQL客户端bin/mysql需要libtinfo.so.5

安装好依赖包后继续执行得到如下截图。注意最后一行,是mysql初始密码

配置SSL参数

cd /opt/mysql/mysql-5.7.21

bin/mysql_ssl_rsa_setup --datadir=/opt/mysql/mysql-5.7.21/data

由于mysql-5.7.21版本my.cnf不在/support-files下,故我们创建my.cnf文件,复制如下内容:

touch /etc/my.cnf

vim /etc/my.cnf

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

basedir=/opt/mysql/mysql-5.7.21

datadir=/opt/mysql/mysql-5.7.21/data

port = 3306

socket=/tmp/mysql.sock

log-error=/opt/mall/mysql/log/mysqld.log

pid-file=/opt/mall/mysql/run/mysqld.pid

#表名不区分大小写

lower_case_table_names = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_connections=5000

配置mysql自动启动

cd /opt/mysql/mysql-5.7.21

cp support-files/mysql.server /etc/init.d/mysql

#因为mysql是安装在/opt/mysql/mysql-5.7.21下故需要修改/etc/init.d/mysql文件的mysql安装路径

vim /etc/init.d/mysql

basedir=/opt/mysql/mysql-5.7.21

datadir=/opt/mysql/5.7.21/data

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

chmod +x /etc/init.d/mysql

#通过chkconfig命令将mysqld服务加入到自启动服务项中

chkconfig --add mysql

查看是否添加成功

chkconfig --list mysql

启动mysql

cd /opt/mysql/mysql-5.7.21

bin/mysqld_safe --user=mysql &

使用service mysql命令启动/停止,查看服务

#查看mysql状态

/etc/init.d/mysql status 或者 service mysql status

#启动mysql

/etc/init.d/mysql start 或者 service mysql start

#停止mysql

/etc/init.d/mysql stop 或者 service mysql stop

#重新启动mysql

/etc/init.d/mysql restart 或者 service mysql restart

查看mysql服务说明启动成功

ps -ef|grep mysql

添加系统路径,在文件的末尾添加如下代码:

vim /etc/profile

export PATH=/opt/mysql/mysql-5.7.21/bin:$PATH

或者

echo "export PATH=$PATH:/opt/mysql/mysql-5.7.21/bin" >> /etc/profile

设置环境变量立即生效

source /etc/profile

把mysql客户端放到默认路径:

ln -s /opt/mysql/mysql-5.7.21/bin/mysql /usr/local/bin/mysql

注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

软链接的意思就是给mysql客户端创建快捷方式

修改mysql密码

cd /opt/mysql/mysql-5.7.21/bin

./mysql -u root -p

密码上面生成的临时密码 :34=y7&/MsmJe

mysql>set password=password("newpassword");

或者 mysql -u root -p #登录mysql

#查看mysql版本

mysql> select version();

#查看数据库

mysql> show databases;

密码上面生成的临时密码 :34=y7&/MsmJe

设置远程登录(一定要保证进入mysql状态下)

[root@admin mysql-5.7.21]# mysql -u root -p

mysql>use mysql;

mysql>update user set host='%' where user='root';

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES;

mysql>exit;

#重新启动mysql

service mysql restart;

测试远程连接是否正常:

这是因为linux防火墙没有关闭,没有开启3306端口号

#查看是否开启3306端口号

netstat -an|grep 3306

#直接关闭防火墙

chkconfig iptables off

#不关闭防火墙,只打开3306端口

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

备注:

centos6.0防火墙操作

查看防火墙状态:service iptables status

关闭防火墙:chkconfig iptables off #开机不启动防火墙服务

开启防火墙:chkconfig iptables on

重启防火墙:service iptables restart

不关闭防火墙,只打开3306端口

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo service iptables save

centos7.0防火墙操作(默认是使用firewall作为防火墙,如若未改为iptables防火墙,使用以下命令查看和关闭防火墙)

查看防火墙状态:firewall-cmd --state

关闭防火墙:systemctl stop firewalld.service

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

不关闭防火墙,只打开3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

参考:

https://linux.cn/article-4243-1.html

测试远程是否正常连接

windows+R--cmd

mysql -h 192.168.174.128 -u root -p

输入密码

相关TAG标签
上一篇:JavaScript模块化教程
下一篇:ajax代码实现上传图片
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站