草庐IT

Linux(Centos7)下rpm方式安装MySQL

HaleyTiger 2023-03-28 原文

1. 卸载已有MySQL

1.1. 查看是否已安装mysql

rpm -qa |grep -i mysql
如果系统已安装,请卸载删除。


1.2. 删除MySQL

删除命令:rpm -e --nodeps 包名
rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64
如果提示依赖包错误,则使用以下命令尝试(个人建议):

rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts mysql-libs-5.1.73-8.el6_8.x86_64


1.3. 删除残留mysql的文件和库

查找删除残留mysql的文件和库:

find / -name mysql
删除对应的mysql目录:

rm -rf /usr/share/mysql rm –rf /usr/lib64/mysql rm -rf /var/lock/subsys/mysql

1.4. 手工删除/etc/my.cnf

rm -rf /etc/my.cnf

1.5. 再次检查是否已安装mysql,如果有,请重复上面步骤删除之。

find / -name mysql rpm -qa|grep -i mysql


2. 安装MySQL5.7 上传以下mysql安装文件:

mysql-community-client-5.7.27-1.el6.x86_64.rpm
mysql-community-server-5.7.27-1.el6.x86_64.rpm
mysql-community-common-5.7.27-1.el6.x86_64.rpm
mysql-community-libs-5.7.27-1.el6.x86_64.rpm


由于存在各种依赖关系,安装顺序为:

1)rpm -ivh mysql-community-common-5.7.27-1.el6.x86_64.rpm
2)rpm -ivh mysql-community-libs-5.7.27-1.el6.x86_64.rpm
3)rpm -ivh mysql-community-client-5.7.27-1.el6.x86_64.rpm
4)rpm -ivh mysql-community-server-5.7.27-1.el6.x86_64.rpm


在安装过程中:

(1)报错1: 安装common、libs时报:mariadb-libs与所安装软件冲突

原因: 由于centos7默认安装mysql分支数据库mariadb,出现冲突。


【解决方法】:卸载mariadb-libs

[root@localhost java]# rpm -qa |grep -i mariadb mariadb-libs-5.5.65-1.el7.x86_64 [root@localhost java]# [root@localhost java]# rpm -ev mariadb-libs-5.5.65-1.el7.x86_64 --nodeps 软件包准备中... mariadb-libs-1:5.5.65-1.el7.x86_64 [root@localhost java]#
(2)报错2: 安装server时报:需要安装libnuma.so.1()(64bit)

安装numactl即可:

# yum -y install numactl
(3)报错3: 安装server时报:需要安装libsasl2.so.2()(64bit)

注: libsasl2.so.2()(64bit) 的包全名为:cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64.rpm(这里版本请忽略)

yum方式安装cyrus-sasl-lib,发现其已经安装:

[root@localhost java]# yum install -y cyrus-sasl-lib
【解决方法】:强制安装server(--nodeps --force):

[root@localhost java]# rpm -ivh mysql-community-server-5.7.27-1.el6.x86_64.rpm --nodeps --force

安装完成!


3. 启动MySQL #查看mysql状态 service mysqld status # 启动mysql service mysqld start # 停止mysql service mysqld stop # 重启mysql service mysqld restart (1)启动MySQL服务:

[root@localhost java]# service mysqld start Starting mysqld (via systemctl): [ 确定 ] [root@localhost java]# (2)查看MySQL进程(发现启动成功):

[root@localhost java]# ps -ef | grep mysql root 47240 1 0 22:18 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql mysql 47434 47240 0 22:18 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock root 47557 39026 0 22:26 pts/1 00:00:00 grep --color=auto mysql [root@localhost java]#
4. 修改MySQL密码 (1)关闭MySQL服务:

[root@localhost java]# service mysqld stop Stopping mysqld (via systemctl): [ 确定 ] [root@localhost java]#
(2)在配置文件/etc/my.cnf任意行(新一行)中加入指令:skip-grant-tables

[root@localhost java]# vi /etc/my.cnf
注: my.cnf文件目录可通过“find / -name my.cnf”命令查找。


(3)然后启动mysql服务:

[root@localhost java]# service mysqld start Starting mysqld (via systemctl): [ 确定 ] [root@localhost java]#
(4)登录MySQL,不需要输入密码直接回车即可


(5)修改密码,并刷新权限

update mysql.user set authentication_string=password('1234') where user='root'; flush privileges;


(6)最后,注释掉配置文件/etc/my.cnf中添加的skip-grant-tables

[root@localhost java]# vi /etc/my.cnf
(7)重启mysql服务:

[root@localhost java]# service mysqld restart Stopping mysqld (via systemctl): [ 确定 ] [root@localhost java]#
(8)登录后正常操作MySQL会报错

【解决方法】(登录mysql后执行):

① MySQL版本5.7以下(不含5.7)版本:

SET PASSWORD = PASSWORD('1234'); flush privileges; ② MySQL版本5.7+(含5.7)版本(常用):

ALTER USER USER() IDENTIFIED BY '1234'; flush privileges;
(9)如果继续报错:

修改MySQL密码安全策略:

mysql> set global validate_password_policy=LOW; mysql> set global validate_password_length=4; 再次修改密码(这里使用的mysql5.7,版本5.7以下见上面教程):

ALTER USER USER() IDENTIFIED BY '1234'; flush privileges;


5. 修改MySQL字符集等配置(初级配置) (1)编辑配置信息

[root@localhost java]# vi /etc/my.cnf 内容:

[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 主服务器唯一ID(一般取IP最后一段) server-id=1 # 设置mysql的安装目录 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # 允许最大连接数 max_connections=1000 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 分组group_cocat函数最大长度,默认为1024 group_concat_max_len=102400 # 最大数据包大小(通信缓冲区的最大长度) max_allowed_packet=102400 # 最大允许的数据包大小(执行大数据插入等操作需要配置) max_allowed_packet=10000M # 设置时区(Idea连接mysql需要设置) default-time-zone='+08:00' # 取消mysql表名大小写限制(0:区分,1:不区分) lower_case_table_names=1 # 必须的配置(支持group by) sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 跳过校验权限(需配置在[mysqld_safe]之前) # skip-grant-tables [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 针对如上设置的pid-file文件夹路径:建议自行创建,并授权:

# mkdir -p /var/run/mysqld # chown mysql.mysql /var/run/mysqld/
(2)保存后,重启mysql服务:

[root@localhost java]# service mysqld restart Restarting mysqld (via systemctl): [ 确定 ] [root@localhost java]#
(3)查看mysql字符集

mysql> show variables like '%char%';


6. 开启远程访问权限

6.1. 开启远程访问权限(需root用户授权

① 执行授权语句,报错:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 修改MySQL密码安全策略:

mysql> set global validate_password_policy=LOW; mysql> set global validate_password_length=4; 再次执行授权语句:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
② 刷新权限

mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> 权限变化如下图:

辅助语句(一般不用):
use mysql;
update user set host = ‘%’ where user = ‘root’;
select user,host from mysql.user;


6.2. 开启防火墙端口3306

centos7防火墙相关操作:

启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

(1)开放3306端口

[root@localhost java]# firewall-cmd --zone=public --add-port=3306/tcp --permanent (2)重新加载防火墙配置

[root@localhost java]# firewall-cmd --reload success [root@localhost java]# (3)查看已开放的端口

[root@localhost java]# firewall-cmd --list-port 3306/tcp [root@localhost java]# 【附】其他相关命令:

① 关闭指定端口(如:关闭3306端口)

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

② 查看端口状态(如:查看3306端口)

firewall-cmd --zone=public --query-port=3306/tcp


7. 使用Navicat Premium远程连接MySQL(附:常见报错)
注: 这里使用Navicat Premium软件远程连接测试。

到此,安装完成!!!


附:常见连接报错 (1) 报错一(10060): 防火墙端口未开启


(2)报错二(1045): 远程授权密码与实际连接密码不相符


有关Linux(Centos7)下rpm方式安装MySQL的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  5. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  6. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  7. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  8. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  9. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  10. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

随机推荐