jjzjj

CentOS7 安装MySQL5.7企业版(商业版)及修改my.cnf默认datadir、socket路径后无法启动的处理方法

cny2022 2023-03-28 原文

一、清理环境

查看是否已安装
#rpm -qa |grep -i mysql
#rpm -qa |grep -i mariadb --(centos7默认系统自带的查看版本号并进行删除)
#rpm -e mariadb-libs-5.5.56-2.el7.x86_64  --删除mariadb

 

 # yum remove mariadb-libs-5.5.56-2.el7.x86_64 -- 删除mariadb

# yum install perl perl-devel   //安装依赖包,根据各系统环境而定

 

二、开始安装
#--上传mysql rpm安装包到服务器(安装包可以去oracle官网下载)

# rpm -ivh mysql-commercial-common-5.7.28-1.1.el7.x86_64.rpm
# rpm -ivh mysql-commercial-libs-5.7.28-1.1.el7.x86_64.rpm
# rpm -ivh mysql-commercial-libs-compat-5.7.28-1.1.el7.x86_64.rpm
# rpm -ivh mysql-commercial-client-5.7.28-1.1.el7.x86_64.rpm
# rpm -ivh mysql-commercial-server-5.7.28-1.1.el7.x86_64.rpm

 

-----or--下载安装MySQL5.7社区版-----------------

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

---------------------------------------------------------------

 

 

三、启动&开机自启
# systemctl enable mysqld
# systemctl start mysqld
# systemctl status mysqld

 

四、获取随机root密码
# grep password /var/log/mysqld.log //日志文件查找临时密码

 # mysql -u root -p

Enter password:

 

 

五、修改密码

修改当前登录用户

ALTER USER USER() IDENTIFIED BY 'Abc123@#$';

 

六、用户管理

创建新用户

mysql> use mysql;

mysql> create user 'admin'@'%' identified by 'Abc123@#$';
Query OK, 0 rows affected (0.00 sec)
授权
grant select ,insert,update on db1.t1 to "admin"@'%' identified by "Abc123@#$";
grant all privileges on db1.* to "admin"@'%' identified by "Abc123@#$";
grant all privileges on *.* to "admin"@'%' identified by "Abc123@#$";

取消授权

revoke all on db1.t1 from 'admin'@"%";
revoke all on db1.* from 'admin'@"%";
revoke all privileges on *.* from 'admin'@'%';

3)设置用户 root 可以在任意 IP 下被访问
grant all privileges on *.* to root@"%" identified by "Abc123@#$";

 

七、my.cnf参数配置调整MySQL数据存储目录datadir、socket

# systemctl stop mysqld
# cp -rp /var/lib/mysql /data --复制数据文件到新的目录
# chown -R mysql:mysql /data/mysql 
# vi /etc/my.cnf

-----my.cnf修改------

[client]
port=3306
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock  #修改socket目录

[mysqld]

port=3306
#datadir=/var/lib/mysql
datadir=/data/mysql #修改数据文件目录
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock #修改socket目录

------end------

[root@Centos7 tools]# systemctl start mysqld

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

[root@Centos7 tools]# /usr/bin/mysql start
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)

调整目录后,MySQL无法启动了,目录权限处理过,还是启动不了

方法一、

临时关闭SELinux:

# setenforce 0

永久关闭SELinux:

 # vi /etc/sysconfig/selinux

然后将配置SELinux=enforcing改为SELinux=disabled

# sestatus ##查看SELinux状态

 # systemctl start mysqld    --关闭SELinux后MySQL可以正常启动

 

 

######datadir、socket路径修改后因为SELinux安全问题导致无法启动,在网上找了几天也没有人有说清楚,说到需关闭SELinux就已经不错了。

其实真正的问题就是datadir、socket、log修改后的新路径文件夹权限只有MySQL用户和用户组,没有其他的用户,所以受SELinux影响无法写入导致启动失败。

方法二、

# ls -ldZ /data/mysql                                            ##查看目录的SElinux 标签
# yum provides semanage                                  ###安装
# yum -y install policycoreutils-python.x86_64    ###安装

# chcon -Rv -u system_u -t mysqld_db_t /data/mysql
# semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
# restorecon -Rv /data/mysql
# ls -ldZ /data/mysql                                            ##再查看目录的SElinux 标签

# systemctl start mysqld                     ##处理后,MySQL启动正常

 

八、防火墙端口开放
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload

 

九、通过客户端远程连接测试。OK完成

 

有关CentOS7 安装MySQL5.7企业版(商业版)及修改my.cnf默认datadir、socket路径后无法启动的处理方法的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  5. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  6. ruby-openid:执行发现时未设置@socket - 2

    我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass

  7. Ruby 方法() 方法 - 2

    我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby​​-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco

  8. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  9. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  10. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

随机推荐