centos mysql 目录?centos7创建目录

其实centos mysql 目录的问题并不复杂,但是又很多的朋友都不太了解centos7创建目录,因此呢,今天小编就来为大家分享centos mysql 目录的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

Centos7查看Mysql配置文件

my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载。

安装mysql后,系统中会有多个 my.cnf文件,有些是用于测试的。

安装locate

命令

输出

当我们需要修改配置文件时,需要找到mysql启动时是加载了哪个 my.cnf文件。

启动mysql后,我们查看mysql的进程,看看是否有设置使用指定目录的 my.cnf文件,如果有则表示mysql启动时是加载了这个配置文件。

命令

输出

可以看到/usr/local/Cellar/mysql/5.6.24/my.cnf就是mysql启动加载的配置文件。

如果上面的命令没有输出,表示没有设置使用指定目录的 my.cnf。

如果没有设置使用指定目录的 my.cnf,mysql启动时会读取安装目录根目录及默认目录下的 my.cnf文件。

查看mysql启动时读取配置文件的默认目录

命令

输出

这些就是mysql默认会搜寻 my.cnf的目录,顺序排前的优先。

如果没有设置使用指定目录 my.cnf文件及默认读取目录没有 my.cnf文件,表示mysql启动时并没有加载配置文件,而是使用默认配置。

需要修改配置,可以在mysql默认读取的目录中,创建一个 my.cnf文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启mysql后即可生效。

求助centos7,mysql 启动服务出错的问题

一、my.cnf配置文件datadir项配置错误或被启动脚本篡改

这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。

我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....

[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql

二、进程里已经存在mysql进程

这种情况我很少遇到,若存在mysql进程但有不提供mysql服务(表现为其他客户端连接不上mysql服务器,例如php连接mysql时提示“连接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令如下:

ps-ef|grep mysql

若存在,该命令执行后会列出存在的僵尸进程,kill-9 `pid`掉即可。

三、mysql的数据存储目录权限不足

这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:

chown-R mysql.mysql/data/mysql##该命令仅为示例,其中/data/mysql就是mysql配置文件中datadir的目录##若为空,则默认为mysql安装目录下的data文件夹下

四、覆盖安装或升级mysql后,残余数据的影响

这种情况发生于mysql被覆盖安装或升级后,当然mysql无故宕机后也会有这种情况,可能会影响mysql启动的数据文件,一般存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之即可。

五、selinux的问题,centos下最容易出现

selinux不甚了解,直接关掉。

##方法1:永久关闭seliux##修改 vi/etc/selinux/config#文件中设置SELINUX=disabled,然后重启服务器##方法2:暂时关闭seliux setenforce 0##如需每次开机都铃声关闭seliux,则可以在/etc/rc.d/rc.local文件中添加该命令

六、mysql运行状态下删除binary日志后重启失败

这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志并且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。

什么是binary日志?说白了就是mysql的数据目录下的mysql-bin.000001、mysql-bin.000002的文件。

解决方法就是修改配置文件临时关闭binary-log,然后删除mysql数据目录下的所有类似mysql-bin.000001、mysql-bin.000002的文件后再次重启,mysql即可启动成功。

#mysql配置关闭二进制日志找到如下语句注释掉即可#log-bin=mysql-bin#binlog_format=mixed

此步骤操作完毕之后,若还需要启用二进制日志,那么就要先停掉mysql服务,然后修改msyql的配置文件,再次重启即可。

另外再附上正确删除mysql二进制日志文件的方法(绝对不是rm-rf命令直接删这些文件):

#第一步通过shell或cmd登录进mysql这步没什么好说的 msyql-u root-p***#第二步在mysql下直接执行清理binary日志命令 mysql> reset master#注意:此处仅针对单台mysql而言,若有互备mysql则执行该命令有风险。

CentOS7.0如何启动多个MySQL实例教程(mysql-5.7.21)

配置说明

Linux系统:CentOS-7.0

MySQL版本:5.7.21

Linux系统下启动多个MySQL实例,目前知道有两种方法,一种是通过官方提供的mysqld_multi.server来实现,但是我现在还没研究这种方法是怎么做的;另一种就是通过安装多个MySQL服务器的原始方法实现。我现在是通过第二种方法实现的。成功启动2个MySQL实例。接下来介绍一下操作过程,请多指教。

一、安装第一个MySQL(5.7.21)服务器

首先说明下我是用二进制包安装mysql的:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

1、获取mysql二进制包,然后通过 tar命令解压,通过mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql_3306命令将解压的文件夹进行重命名成较短的名称,备注要使用的端口号,便于区分。至于要将解压后的文件放在哪里,你自己决定,区别是,如果你不是将解压文件命名成mysql后直接放到/usr/local目录下,或者通过ln在/usr/local目录下使用mysql引用的话,你需要在my.cnf或者启动命令参数中指定(basedir=实际的解压文件路径和 datadir=实际的结业文件路径/data)。这个说明其实在mysql.server中,可以使用vi命令打开看一下。

2、看了网上很多mysql的安装方法介绍,都会提到新增用户组、用户:groupadd mysql和useradd-r-g mysql-s/bin/false mysql,增加了mysql用户和mysql用户组。这个看你自己实际需要,因为我就是自己用,没有安全问题,就没有新增,而是直接用root。如果需要新增用户和用户组,可以网上查找资料或者在MySQL的官方手册中看到:

3、新建my.cnf或者从别处复制一份过来,主要是在初始化文件中指定basedir、datadir、端口号以及socket等参数,下图是我的my.cnf内容,请根据自己的实际路径替换相关参数,放在安装目录下:

4、按照官方文档的安装步骤,还需要在安装目录下新建一个mysql-files文件夹,具体为什么要新建这个文件夹我还不是很清楚,哈哈,给出官方文档的内容“The mysql-files directory provides a convenient location to use as the value for the secure_file_priv system variable, which limits import and export operations to a specific directory.”

5、接下来初始化mysql,首先在安装目录下新增data文件夹,然后进入到安装目录的bin文件夹下面,执行以下命令:“./mysqld--initialize--user=root--basedir=/data/program/mysql3306--datadir=/data/program/mysql3306/data”。在linux中,命令带参数时,如果参数名是全称,就用两个横杠“--”,如果参数时简称,就用一个横杠“-”,比如,./mysql--host=localhost和./mysql-hlocalhost。在上述初始化mysql的命令中,请把参数值替换成你自己的路径和用户。如果你只安装一个mysql,并且是在/usr/local/mysql这个默认目录,就不需要指定basedir和datadir参数。如果你因为某种原因想要重新初始化,那么你需要先把data目录下的内容删掉,你可以选择删除整个data文件夹然后新增:rm-rf data, mkdir data,然后你再执行上面的初始化命令,就可以顺利重新初始化。这里需要注意的是,初始化成功之后,会在提示信息的末尾找到默认密码,一定要记住了,一会儿客户端登入的时候要用。

6、接下来创建安全传输所需的证书和key,在bin目录下执行命令:“./mysql_ssl_rsa_setup--datadir=/data/program/mysql3306/data”,同样,将参数替换成你的值,默认的安装目录不需要指定datadir值。这个命令的作用官方说明如下:“This program creates the SSL certificate and key files and RSA key-pair files required to support secure connections using SSL and secure password exchange using RSA over unencrypted connections, if those files are missing.”,大概是说通过这个命令创建了在非加密连接上使用SSL和RSA进行安全传输所需的SSL证书和key,RSA键值对。

7、到此mysql的初始化就完成了,可以启动mysql服务器了,5.7版本以后好像都是使用mysqld_safe命令启动服务的,也可以使用support-file目录下的mysql.server来启动,不过mysql.server也是使用mysqld_safe来启动的。mysqld_safe的命令如下:“./mysqld_safe--defaults-file=/data/program/mysql3306/my.cnf--user=root--port=3306&”,关键的是要指定my.cnf路径,因为我没有安装在默认目录下,而且我们是要在一个机器上安装两个mysql的。这里面要注意的是“--defaults-file”一定要作为第一个参数,不然会报错,有相应提示;另外就是命令末尾的“&”,这个是告诉系统将mysql这个实例作为后台进程,这样退出命令的时候mysql服务器才能继续运行。

关于mysql_safe命令的详细参数可以参考://www.gxlcms.com/article/52259.htm

8、启动服务器之后,就可以使用客户端访问服务器了,在bin目录下执行命:“./mysql-uroot-P3306-p”,然后提示输入密码,那么你就把步骤5中的默认密码输入。进去之后,通过命令set password=password('new password')设置你的新密码,否则服务器也不会让你操作其他东西。

9、至此,已经完成一个mysql的安装。

二、安装第n个MySQL(5.7.21)服务器

有了上面的安装过程,基本上安装第n个mysql是跟上面的一样,解压安装包,重命名为mysql_port,通过端口号区分不同的mysql服务器,然后将my.cnf以及上面所执行的命令中,有关路径的参数都替换成相应的路径,就可以了。通过制定具体路径的方式,就可以实现一个linux机器下安装并启动多个mysql实例。在客户端访问服务器时,需要制定哪个端口,用参数-P3306,大写的P。

这是只一个简单安装过程的记录和学习,mysql还有很多配置和功能需要注意,后续有机会整理一下。

总结

阅读剩余
THE END