如果您想了解CentOS下安全快速更改MySQL数据库名称和centos修改数据库密码的知识,那么本篇文章将是您的不二之选。我们将深入剖析CentOS下安全快速更改MySQL数据库名称的各个方面,并为
如果您想了解CentOS下安全快速更改MySQL数据库名称和centos修改数据库密码的知识,那么本篇文章将是您的不二之选。我们将深入剖析CentOS下安全快速更改MySQL数据库名称的各个方面,并为您解答centos修改数据库密码的疑在这篇文章中,我们将为您介绍CentOS下安全快速更改MySQL数据库名称的相关知识,同时也会详细的解释centos修改数据库密码的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- CentOS下安全快速更改MySQL数据库名称(centos修改数据库密码)
- CentOS 5.2下安装多个MySQL数据库
- Centos 5.2下安装多个mysql数据库配置详解_MySQL
- CentOS 5.8下更改MySQL的数据库目录
- CentOS 7上更改MySQL数据库存储目录浅析
CentOS下安全快速更改MySQL数据库名称(centos修改数据库密码)
MysqL似乎没有更改数据库名称的语句(也许是我不知道),如果你有数据库服务器的管理权限,可以直接更改一下目录名即可,但如果没有权限,可以通过更改表名达到修改数据库名的目的。
下面是把centos数据库更改为centos_old。
1、新建数据库centos_old.
2、使用select concat拼成所有rename table的语句。
打开rename_MysqL_name.sql,把第一行删除。
rename_MysqL_name.sql内容大概为:
3、执行rename语句
这样就完成了centos数据库名更改为centos_old的操作。
CentOS 5.2下安装多个MySQL数据库
一、编译安装第一个MySQL 5.1.33cd /opt/usr/sbin/groupadd mysql/usr/sbin/useradd -g mysql mysql -s /bin/nologin -d /usr/lo
一、编译安装第一个MySQL 5.1.33
cd /opt
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql -s /bin/nologin -d /usr/local/mysql
tar -zxvf mysql-5.1.33.tar.gz
cd mysql-5.1.33/
./configure --prefix=/usr/local/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
make && make install
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
cd ../
附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,,能够连接其他服务器上的MySQL数据库,那么,以下两步
无需执行。
①、以mysql用户帐号的身份建立数据表:
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
②、启动MySQL(最后的&表示在后台运行)
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
echo "/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &" >> /etc/rc.local
ln -s /usr/local/mysql/bin/mysql /sbin/mysql
ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
mysqladmin -u root password 1234 --初始化root密码
mysqladmin -u root -p password 456 --修改root已设置好的密码
mysql -u root -p --用新密码连接数据库
添加mysql帐户
grant all on *.* to ''mysql3306''@''%'' identified by ''mysql3306''; --添加用户mysql3306用于远程管理mysql数据库
二、编译安装第二个mysql 5.1.33:
注:可以将第一个mysql的安装文件全部复制过来,为了熟练安装过程,这里就再来重新安装一遍
cd /opt
/usr/sbin/useradd -g mysql mysql3307 -s /bin/nologin -d /usr/local/mysql3307
tar -zxvf mysql-5.1.33.tar.gz
cd mysql-5.1.33/
./configure --prefix=/usr/local/mysql3307/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
make;make install
chmod +w /usr/local/mysql3307
chown -R mysql3307:mysql /usr/local/mysql3307
chmod -R 777 /usr/local/mysql3307
cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql3307/my.cnf
修改配置文件:
port = 3307 --修改端口
socket = /tmp/mysql3307.sock --修改sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3307
socket = /tmp/mysql3307.sock
①、以mysql用户帐号的身份建立数据表:
/usr/local/mysql3307/bin/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/usr/local/mysql3307/data --user=mysql3307
②、启动MySQL(最后的&表示在后台运行)
/bin/sh /usr/local/mysql3307/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/my.cnf &
echo "/bin/sh /usr/local/mysql3307/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/my.cnf &" >> /etc/rc.local
注:如出现 warning world-writable config file '' /usr/local/mysql3307/my.cnf'' is ignored
解决办法: chmod 644 /usr/local/mysql3307/my.cnf
mysqladmin -P 3307 -S/tmp/mysql3307.sock -u root password 1q2w3e --初始化root密码
mysqladmin -P 3307 -S/tmp/mysql3307.sock -u root -p password 1q2w3e --修改root已设置好的密码
/usr/local/mysql3307/bin/mysql -uroot -p -S/tmp/mysql3307.sock
添加mysql帐户
grant all on *.* to ''mysql3307''@''%'' identified by ''mysql3307''; --添加用户mysql3307用于远程管理mysql数据库
Centos 5.2下安装多个mysql数据库配置详解_MySQL
CentOS
一、编译安装第一个mysql 5.1.33
cd /opt/usr/sbin/groupadd mysql/usr/sbin/useradd -g mysql mysql -s /bin/nologin -d /usr/local/mysqltar -zxvf mysql-5.1.33.tar.gzcd mysql-5.1.33/./configure --prefix=/usr/local/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobasemake && make installchmod +w /usr/local/mysqlchown -R mysql:mysql /usr/local/mysqlcp support-files/my-medium.cnf /usr/local/mysql/my.cnfcd ../
附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。
①、以mysql用户帐号的身份建立数据表:
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
②、启动MySQL(最后的&表示在后台运行)
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &echo "/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &" >> /etc/rc.localln -s /usr/local/mysql/bin/mysql /sbin/mysql ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladminmysqladmin -u root password 1234 --初始化root密码mysqladmin -u root -p password 456 --修改root已设置好的密码mysql -u root -p --用新密码连接数据库
添加mysql帐户
grant all on *.* to ''mysql3306''@''%'' identified by ''mysql3306''; --添加用户mysql3306用于远程管理mysql数据库
二、编译安装第二个mysql 5.1.33:
注:可以将第一个mysql的安装文件全部复制过来,为了熟练安装过程,这里就再来重新安装一遍
cd /opt/usr/sbin/useradd -g mysql mysql3307 -s /bin/nologin -d /usr/local/mysql3307tar -zxvf mysql-5.1.33.tar.gzcd mysql-5.1.33/./configure --prefix=/usr/local/mysql3307/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobasemake;make installchmod +w /usr/local/mysql3307chown -R mysql3307:mysql /usr/local/mysql3307chmod -R 777 /usr/local/mysql3307cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql3307/my.cnf
修改配置文件:
port = 3307 --修改端口socket = /tmp/mysql3307.sock --修改sock# Here follows entries for some specific programs# The MySQL server[mysqld]port = 3307socket = /tmp/mysql3307.sock
①、以mysql用户帐号的身份建立数据表:
/usr/local/mysql3307/bin/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/usr/local/mysql3307/data --user=mysql3307
②、启动MySQL(最后的&表示在后台运行)
/bin/sh /usr/local/mysql3307/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/my.cnf &echo "/bin/sh /usr/local/mysql3307/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/my.cnf &" >> /etc/rc.local
注:如出现 warning world-writable config file '' /usr/local/mysql3307/my.cnf'' is ignored
解决办法: chmod 644 /usr/local/mysql3307/my.cnf
mysqladmin -P 3307 -S/tmp/mysql3307.sock -u root password 1q2w3e --初始化root密码mysqladmin -P 3307 -S/tmp/mysql3307.sock -u root -p password 1q2w3e --修改root已设置好的密码/usr/local/mysql3307/bin/mysql -uroot -p -S/tmp/mysql3307.sock
添加mysql帐户
grant all on *.* to ''mysql3307''@''%'' identified by ''mysql3307''; --添加用户mysql3307用于远程管理mysql数据库
CentOS 5.8下更改MySQL的数据库目录
Linux下更改MySQL的数据库目录今天要在一台双线云主机上安装 MySQL 数据库,操作系统为 CentOS 5.8,因为该机安装的时候 / 分区只
Linux下更改MySQL的数据库目录
今天要在一台双线云主机上安装 MySQL 数据库,操作系统为 CentOS 5.8,因为该机安装的时候 / 分区只有20G,,还有一个 300G 的扩展磁盘分区挂载在 /disk ,因此需要将 MySQL 的数据库目录设置在 /disk/mysql ,下面是具体操作步骤。
操作系统:CentOS 5.8
MySQL 版本:5.5.25
目标:更改MySQL数据库目录
源目录:/var/lib/mysql (系统默认目录)
目标目录:/disk/mysql
1. 安装 MySQL 数据库软件如果已经有,则跳过。MySQL 最新版本为 5.5.25
-bash-3.2# rpm -qa | grep MySQL
-bash-3.2# mkdir -p setup
-bash-3.2# cd setup/
-bash-3.2# wget "http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.5.25-1.rhel5.i386.rpm/from/http://mirror.csclub.uwaterloo.ca/mysql/"
--2012-06-06 16:48:29-- ://mirror.csclub.uwaterloo.ca/mysql/
2012-06-06 16:49:52 (216 KB/s) - `MySQL-client-5.5.25-1.rhel5.i386.rpm'' saved [17860149/17860149]
-bash-3.2# wget "http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.5.25-1.rhel5.i386.rpm/from/http://mysql.mirror.iweb.ca/"
--2012-06-06 16:50:01-- ://mysql.mirror.iweb.ca/
2012-06-06 16:57:11 (132 KB/s) - `MySQL-server-5.5.25-1.rhel5.i386.rpm'' saved [54564826/54564826]
-bash-3.2# rpm -ivh MySQL-server-5.5.25-1.rhel5.i386.rpm MySQL-client-5.5.25-1.rhel5.i386.rpm
error: Failed dependencies:
libaio.so.1 is needed by MySQL-server-5.5.25-1.rhel5.i386
libaio.so.1(LIBAIO_0.1) is needed by MySQL-server-5.5.25-1.rhel5.i386
libaio.so.1(LIBAIO_0.4) is needed by MySQL-server-5.5.25-1.rhel5.i386
-bash-3.2# yum install -y libaio
Installed:
libaio.i386 0:0.3.106-5
Complete!
-bash-3.2# rpm -ivh MySQL-server-5.5.25-1.rhel5.i386.rpm MySQL-client-5.5.25-1.rhel5.i386.rpm
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [ 50%]
2:MySQL-server ########################################### [100%]
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password ''new-password''
/usr/bin/mysqladmin -u root -h localhost password ''new-password''
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
Please report any problems with the /usr/bin/mysqlbug script!
-bash-3.2#
如果MySQL服务器正在运行,应该先将其停止。
我因为刚安装好,所以并未运行。
-bash-3.2# service mysql stop
ERROR! MySQL server PID file could not be found!
-bash-3.2# service mysql status
ERROR! MySQL is not running
-bash-3.2# mv /var/lib/mysql /disk
-bash-3.2# ls /disk/
logs lost+found mysql
-bash-3.2#
[client]
default-character-set=gbk
socket=/disk/mysql/mysql.sock
[mysqld]
character-set-server=gbk
socket=/disk/mysql/mysql.sock
CentOS 7上更改MySQL数据库存储目录浅析
个人之前总结过两篇文章“MySQL更改数据库数据存储目录”和“Ubuntu上更改MySQL数据库数据存储目录”,都是在工作中遇到相关案例后的一个简单总结。当初的经验不足,认知有限,所以现在来看来,当初的博文确实显得浅析和不够全面,这个也没有办法,当时有些环境或案例没有涉及过,所以文章很难面面俱到,略显单薄和浅显,这个也很正常。博客不是论文,只是个人的笔记和知识点的总结。而且是基于当时的认知的经验总结和知识概括。前阵子将监控工具DPA的数据库切换为MySQL时,又遇到了这个问题,遂总结一下。
系统环境 : CentOS Linux release 7.5.1804 (Core)
MySQL版本 : 8.0.18 MySQL Community Server - GPL
默认情况下,MySQL的数据目录一般位于/var/lib/mysql下
1:首先,弄清楚MySQL的相关配置信息
找到MySQL的数据目录,以及配置文件my.cnf、错误日志的位置。
mysql> show variables like ''datadir%'';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.03 sec)
mysql> show variables like ''log_error'';
+---------------+---------------------+
| Variable_name | Value |
+---------------+---------------------+
| log_error | /var/log/mysqld.log |
+---------------+---------------------+
1 row in set (0.01 sec)
mysql>
[root@KerryDB ~]# whereis my.cnf
my: /etc/my.cnf
2:对数据库做一个冷备份,以备不时之需。当然,你以可以用其它方式备份。
[root@KerryDB ~]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
[root@KerryDB ~]# cp -rp /var/lib/mysql /tmp/coldbackup
3:移动数据目录到其它目录
这里假设,我需要将数据库的数据目录迁移到/mysql_data/下。
[root@KerryDB ~]# chown -R mysql:mysql /mysql_data/
[root@KerryDB ~]# cd /var/lib
[root@KerryDB lib]# mv mysql /mysql_data/
注意:这里建议使用mv移动数据库目录,而是不是复制(cp命令),因为执行复制时,SELinux上下文将丢失,并且您稍后必须手动进行设置,如果你使用cp命令复制文件,如果没有使用参数-p,那么要记得修改目录的属主,否则你有可能遇到“MySQL error: 1017 Can’t find file: (errno: 13)”这样的错误。
mv 与cp的区别
4:修改配置文件my.cnf
一般情况下,只需修改datadir和socket等参数,具体根据你实际情况来判断那些参数需要修改。
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
datadir=/mysql_data/mysql
socket=/mysql_data/mysql/mysql.sock
修改过后,对于CentOS或RHEL操作系统而言,你可能需要修改SELinux的设置,而对于Ubuntu或Debian,你需要修改AppArmor的设置(这篇Ubuntu上更改MySQL数据库数据存储目已经有介绍了,这里就不重复了)。当如,对于CentOS或RHEL,如果你禁用了SELinux的话,那么就可以直接忽略这个设置,因为禁用SELinux的话,就会避免很多杂七杂八的问题,但是我们不是要回避问题,而是要弄清楚问题产生的根本原因。
首先你要检查,是否开启了SELinux。如下所示:
[root@KerryDB ~]# /usr/sbin/sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
[root@KerryDB ~]# getenforce
Enforcing
如果SELinux是开启状态,那么此时如果不做一些配置,那么启动MySQL服务,就会遇到类似下面这样的错误:
[root@KerryDB ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2020-03-09 15:43:06 +08; 2min 54s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 14903 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
Process: 14879 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 14903 (code=exited, status=1/FAILURE)
Status: "Server startup in progress"
Error: 13 (Permission denied)
Mar 09 15:43:06 KerryDB systemd[1]: Starting MySQL Server...
Mar 09 15:43:06 KerryDB systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Mar 09 15:43:06 KerryDB systemd[1]: Failed to start MySQL Server.
Mar 09 15:43:06 KerryDB systemd[1]: Unit mysqld.service entered failed state.
Mar 09 15:43:06 KerryDB systemd[1]: mysqld.service failed.
[root@KerryDB ~]# journalctl -xe
Mar 09 15:39:05 KerryDB polkitd[731]: Registered Authentication Agent for unix-process:14836:224127979 (system bus name :1.1355 [/usr/bin/pkttyagent --notify
Mar 09 15:39:05 KerryDB systemd[1]: Stopping MySQL Server...
-- Subject: Unit mysqld.service has begun shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has begun shutting down.
Mar 09 15:39:07 KerryDB systemd[1]: Stopped MySQL Server.
-- Subject: Unit mysqld.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has finished shutting down.
Mar 09 15:39:07 KerryDB polkitd[731]: Unregistered Authentication Agent for unix-process:14836:224127979 (system bus name :1.1355, object path /org/freedeskt
Mar 09 15:43:06 KerryDB polkitd[731]: Registered Authentication Agent for unix-process:14863:224152052 (system bus name :1.1356 [/usr/bin/pkttyagent --notify
Mar 09 15:43:06 KerryDB systemd[1]: Starting MySQL Server...
-- Subject: Unit mysqld.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has begun starting up.
Mar 09 15:43:06 KerryDB systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Mar 09 15:43:06 KerryDB systemd[1]: Failed to start MySQL Server.
-- Subject: Unit mysqld.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has failed.
--
-- The result is failed.
Mar 09 15:43:06 KerryDB systemd[1]: Unit mysqld.service entered failed state.
Mar 09 15:43:06 KerryDB systemd[1]: mysqld.service failed.
Mar 09 15:43:06 KerryDB polkitd[731]: Unregistered Authentication Agent for unix-process:14863:224152052 (system bus name :1.1356, object path /org/freedeskt
lines 4369-4401/4401 (END)
上面日志看不到细节错误信息,此时,应该检查错误日志/var/log/mysqld.log, 如下所示,你会看到“OS errno 13 - Permission denied”和“Can''t create test file xxx"类似这样的错误
mysqld: File ''./binlog.~rec~'' not found (OS errno 13 - Permission denied)
2020-03-09T07:43:06.927360Z 0 [Warning] [MY-010091] [Server] Can''t create test file /mysql_data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2020-03-09T07:43:06.927453Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 14903
2020-03-09T07:43:06.929669Z 0 [Warning] [MY-010091] [Server] Can''t create test file /mysql_data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2020-03-09T07:43:06.929681Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /mysql_data/mysql/ is case insensitive
2020-03-09T07:43:06.930542Z 0 [ERROR] [MY-010846] [Server] MYSQL_BIN_LOG::open_purge_index_file failed to open register file.
2020-03-09T07:43:06.930594Z 0 [ERROR] [MY-010817] [Server] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
2020-03-09T07:43:06.930657Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-03-09T07:43:06.930830Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.
注意:默认情况下,日志里面的时间是UTC时间,而不是本地时间。除非你设置过。具体参考我的博客“MySQL5.7参数log_timestamps”。
此时如果,你用chcon命令来在新目录中更改SELinux上下文类型,我看有些博客介绍就OK了。但是在我这个环境中,这样处理过后依然报同样的错误
[root@KerryDB ~]# chcon -R -t mysqld_db_t /mysql_data/
[root@KerryDB ~]#
折腾测试后,发现此时需要在file_contexts里面修改mysqld_db_t,如下所示:
[root@KerryDB ~]# cd /etc/selinux/targeted/contexts/files/
[root@KerryDB files]# ls -lrt
修改前:
/var/lib/mysql(-files|-keyring)?(/.*)? system_u:object_r:mysqld_db_t:s0
修改后:
/mysql_data/mysql(-files|-keyring)?(/.*)? system_u:object_r:mysqld_db_t:s0
其实使用chcon修改对象(文件)的安全上下文,相当难掌握,有点难度,除非你是Linux高手,一般用工具semanage对默认目录的安全上下文查询与修改
一般默认可能没有安装policycoreutils-python,需要安装对应组件
#yum -y install policycoreutils-python
如果你要查看MySQL相关文件的设置,那么可以用semanage fcontext -l | grep -i mysql查看。
root@KerryDB ~]# semanage fcontext -l | grep -i mysql
/usr/lib(64)?/nagios/plugins/check_mysql regular file system_u:object_r:nagios_services_plugin_exec_t:s0
/usr/lib(64)?/nagios/plugins/check_mysql_query regular file system_u:object_r:nagios_services_plugin_exec_t:s0
/etc/mysql(/.*)? all files system_u:object_r:mysqld_etc_t:s0
/etc/my\.cnf\.d(/.*)? all files system_u:object_r:mysqld_etc_t:s0
/var/log/mysql.* regular file system_u:object_r:mysqld_log_t:s0
/var/lib/mysql(-files|-keyring)?(/.*)? all files system_u:object_r:mysqld_db_t:s0
/var/run/mysqld(/.*)? all files system_u:object_r:mysqld_var_run_t:s0
/var/log/mariadb(/.*)? all files system_u:object_r:mysqld_log_t:s0
/var/run/mariadb(/.*)? all files system_u:object_r:mysqld_var_run_t:s0
/usr/sbin/mysqld(-max)? regular file system_u:object_r:mysqld_exec_t:s0
/var/run/mysqld/mysqlmanager.* regular file system_u:object_r:mysqlmanagerd_var_run_t:s0
/usr/lib/systemd/system/mysqld.* regular file system_u:object_r:mysqld_unit_file_t:s0
/usr/share/munin/plugins/mysql_.* regular file system_u:object_r:services_munin_plugin_exec_t:s0
/usr/lib/systemd/system/mariadb.* regular file system_u:object_r:mysqld_unit_file_t:s0
/etc/my\.cnf regular file system_u:object_r:mysqld_etc_t:s0
/root/\.my\.cnf regular file system_u:object_r:mysqld_home_t:s0
/usr/sbin/ndbd regular file system_u:object_r:mysqld_exec_t:s0
/usr/libexec/mysqld regular file system_u:object_r:mysqld_exec_t:s0
/usr/bin/mysqld_safe regular file system_u:object_r:mysqld_safe_exec_t:s0
/usr/bin/mysql_upgrade regular file system_u:object_r:mysqld_exec_t:s0
/usr/sbin/mysqlmanager regular file system_u:object_r:mysqlmanagerd_exec_t:s0
/etc/rc\.d/init\.d/mysqld regular file system_u:object_r:mysqld_initrc_exec_t:s0
/var/lib/mysql/mysql\.sock socket system_u:object_r:mysqld_var_run_t:s0
/usr/bin/mysqld_safe_helper regular file system_u:object_r:mysqld_exec_t:s0
/usr/sbin/zabbix_proxy_mysql regular file system_u:object_r:zabbix_exec_t:s0
/etc/rc\.d/init\.d/mysqlmanager regular file system_u:object_r:mysqlmanagerd_initrc_exec_t:s0
/usr/sbin/zabbix_server_mysql regular file system_u:object_r:zabbix_exec_t:s0
/usr/libexec/mysqld_safe-scl-helper regular file system_u:object_r:mysqld_safe_exec_t:s0
/home/[^/]+/\.my\.cnf
[root@KerryDB ~]# semanage fcontext -a -t mysqld_db_t "/mysql_data/mysql(/.*)?"
[root@KerryDB ~]# restorecon -Rv /mysql_data/mysql
restorecon reset /mysql_data/mysql context system_u:object_r:default_t:s0->system_u:object_r:mysqld_db_t:s0
此时启动MySQL实例就正常了,关于semanage修改目录或文件安全上下文的更多信息,参考资料有,可以移步那里去学习。
# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
此时,你如果用MySQL客户端工具登录数据库,就会遇到"Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''"
[root@KerryDB mysql]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock'' (2)
解决下面错误的方法:
1:在连接MySQL时,指定参数--socket的值
[root@KerryDB mysql]# mysql -u root -p --socket=/mysql_data/mysql/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ''help;'' or ''\h'' for help. Type ''\c'' to clear the current input statement.
mysql>
2:修改配置文件my.cnf,增加客户端参数socket
[client]
socket=/mysql_data/mysql/mysql.sock
注意这个socket参数,跟mysqld下的参数socket是有所区别的。
[client]
socket=/mysql_data/mysql/mysql.sock
[mysqld]
datadir=/mysql_data/mysql
socket=/mysql_data/mysql/mysql.sock
其实这种方法是最简单,最有效的一个方法。
3:可以通过建立mysql.sock文件的软连接
另外,我尝试通过修改Unix-domain Socket 上下文来解决这个问题,但是没有解决,不知是我理解有误,还是其它方面原因。 下面是部分测试内容:
# semanage fcontext -a -t mysqld_var_run_t "/mysql_data/mysql/mysql\.sock"
# restorecon -Rv /mysql_data/mysql/mysql.sock
# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock'' (2)
依然报错,检查semanage fcontext -l | grep -i mysql 如下所示, 由于对SELinux的知识了解不够深入,暂时还在学习中。临时先记录一下,留待以后解决。
# semanage fcontext -l | grep -i mysql
参考资料:
https://dev.mysql.com/doc/refman/5.6/en/can-not-connect-to-server.html
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-working_with_selinux-selinux_contexts_labeling_files
关于CentOS下安全快速更改MySQL数据库名称和centos修改数据库密码的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于CentOS 5.2下安装多个MySQL数据库、Centos 5.2下安装多个mysql数据库配置详解_MySQL、CentOS 5.8下更改MySQL的数据库目录、CentOS 7上更改MySQL数据库存储目录浅析等相关知识的信息别忘了在本站进行查找喔。
本文标签: