centos7.6安装mysql5.6
文档摘自 https://blog.csdn.net/tianshuhao521/article/details/93854326
自己留存,方便以后自己 查看
值得注意的是 ,这篇文章没有涉及更改MySQL data的保存目录
要是修改默认的保存目录,自己尝试过不能成功启动mysql 必须 修改 SELINUX 为disabled
新的datadir路径确实没问题,而且目录和目录下所有文件都是777权限,上层目录也有rx权限,只不过datadir和下属文件owner都是root(因为我用虚拟机挂载的windows的文件系统)。后来想到应该是selinux搞的鬼,设置为permissive模式之后正常启动mysqld。
复制代码 代码如下:
[root@data selinux]# getenforce
Enforcing
[root@data selinux]# setenforce 0
[root@data selinux]# getenforce
Permissive
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
彻底关闭,vi /etc/selinux/config 修改 SELINUX=disabled
这里说明一下 SELinux 的作用
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
设想一下,如果一个以 root 身份运行的网络服务存在漏洞,黑客就可以利用这个漏洞,以 root 的身份在您的服务器上为所欲为了。是不是很可怕?
SELinux 就是来解决这个问题的。在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。
即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。
这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。 而MySQL的more资源目录是/var/lib/mysql/ ,因此在改变mysql 的datadir后,一个简单的解决办法是使用命令暂时关闭selinux,以便让你的操作可以继续下去
setenforce 0 但最好使用一个永久方法,以便在重启后继续不要这货。
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启或等待下次重启。
第二,apparmor,这个坑爹货和selinux一样的坑爹,它也对mysql所能使用的目录权限做了限制,在 /etc/apparmor.d/usr.sbin.mysqld 这个文件中,有这两行,规定了mysql使用的数据文件路径权限
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
你一定看到了,/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限
我想把数据文件移动到/data/mysql下,那么为了使mysqld可以使用/data/mysql这个目录,照上面那两条,增加下面这两条就可以了
/data/mysql/ r,
/data/mysql/** rwk,
重启apparmor,/etc/inid.d/apparmor restart之后,就可以顺利地干你想干的事儿了!
安装mysql
1、卸载系统自带的MariaDB。
(1)查看有没有安装mariadb:rpm -qa|grep -i mariadb
(2)卸载mariadb:rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
(3)删除my.conf:rm /etc/my.conf
2、卸载已安装的mysql(没安装过忽略)。
(1)查看有没有安装mysql:rpm -qa|grep -i mysql
(2)如果有,卸载:rpm -e MySQL-client-5.6.38-1.el7.x86_64
(3)查看mysql服务:chkconfig --list | grep -i mysql
(4)删除mysql服务:chkconfig --del mysql
(5)查找mysql分散的文件:whereis mysql (或者用命令 find / -name *mysql*)
(6)根据查询到的文件目录删除:rm -rf /usr/lib/mysql
3、安装mysql:
(1)官网下载安装包MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar,下载地址为:https://dev.mysql.com/downloads/mysql
(2)创建用户组:groupadd mysql
(3)创建一个用户名为mysql的用户并加入mysql用户组:useradd -g mysql mysql
(4)安装依赖: yum install perl 和 yum -y install autoconf
(5)将下载的文件上传到相应目录(我的:/home/develop/java/server/mysql),并进入该目录解压:tar -xvf MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar
(6)运行命令进行安装:
rpm -ivh MySQL-client-5.6.44-1.el7.x86_64.rpm
rpm -ivh MySQL-devel-5.6.44-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.44-1.el7.x86_64.rpm
其中执行第三个安装命令时可能会报错,如图:
此时,安装libaio即可:yum install libaio。
然后重新执行命令:rpm -ivh MySQL-server-5.6.44-1.el7.x86_64.rpm
4、修改密码。
(1)查看mysql服务状态:service mysql status
如果是运行状态,执行关闭命令关闭mysql:service mysql stop
(2)执行以下两个命令来跳过密码登录mysql:
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root -p
(3)执行以下命令修改密码:
use mysql
select host,user,password from user;
update user set password=password("root") where user='root';
quit
(4)重启mysql:service mysql restart
登录mysql:mysql -uroot -proot
使用mysql数据库:use mysql
修改密码(第一次登录必须修改以下):set password = password('root');
刷新权限:flush privileges;
5、配置远程访问权限。
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
quit
service mysql restart
6、设置mysql开机启动:
查看服务:chkconfig --list mysql
开启mysql服务自动启动:chkconfig mysql on
7、mysql重要目录:
数据库文件: /var/lib/mysql
命令及配置文件:/usr/share/mysql
/usr/bin mysqladmin、mysqldump等命令