为啥我在CentOS7下 使用rpm安装MySQL失败?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我在CentOS7下 使用rpm安装MySQL失败?相关的知识,希望对你有一定的参考价值。

我在安装CentOS7.0系统时,在软件选择里面,选择了“开发及生成工作站”环境,并选择了以下几个附加选项
“附加开发”,“兼容性程序库”,“开发工具”,“传统X Windows的兼容性”,“办公套件及生产率”,“网页用Perl”,“Python”,“平台开发”,“智能卡支持”;
在系统安装完成之后,我再用安装rpm格式的mysql数据库:
MySQL-server-advanced-5.6.13-1.sles11.x86_64.rpm
却出现了以下错误:
错误:依赖检测失败:
aaa_base 被 MySQL-server-advanced-5.6.13-1.sles11.x86_64 需要
pwdutils 被 MySQL-server-advanced-5.6.13-1.sles11.x86_64 需要

请问一下这个什么原因?
还有 虽然服务器端出现了错误 但是客户端却安装成功了:
[root@localhost 公共]# rpm -ivh MySQL-client-advanced-5.6.13-1.sles11.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:MySQL-client-advanced-5.6.13-1.sl################################# [100%]

参考技术A 7.0 版本够新的..没玩过..mysql能用么???
5.6.13不知道在7.0上支持不...

一般来讲...依赖包是必须的.. server需要的依赖包不一定就是client所需要的...安装成功也不奇怪..client要的东西没那么多...就是简单的建立连接之类的...追问

mysql在CentOS7里面是能够用的 因为我使用源码安装就没什么问题 只不过这样太麻烦了 也太复杂了 所以我想知道怎样才能够使RPM格式的mysql数据库安装成功

追答

吧提示的依赖包装上呗..就可以了晒..

追问

可是提示的依赖包无法用yum安装 在百度上也没有搜索到 我在centOS6.5上也遇到过这种问题,但是在系统安装——软件选择时,多勾选了几个软件包就成功了 但是在CentOS7上就不行

追答

这两个依赖包..我也没碰到过..官网也没查到...爱莫能助啊...还是编译安装吧...

追问

....... 唉! 真是麻烦

centos7.2下安装mysql5.7,使用rpm包安装

环境:

      CentOS Linux release 7.2.1511 (Core)

      mysql-5.7.18

 

1 安装前需要先卸载mariadb-lib

[[email protected] ~]#  rpm -qa|grep mariadb
 mariadb-libs-5.5.44-2.el7.centos.x86_64 
[[email protected] ~]#  rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

2 到官网去下载最新的rpm包:mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

解压出rpm-bundle.tar,实际上只需要安装以下几个包

[[email protected] ~]#  rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
[[email protected] ~]#  rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[[email protected] ~]#  rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
[[email protected] ~]#  rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

上面几个包有依赖关系,执行有先后。

使用rpm安装方式安装mysql,安装的路径如下:

a 数据库目录
/var/lib/mysql/
b 配置文件
/usr/share/mysql(mysql.server命令及配置文件)
c 相关命令
/usr/bin(mysqladmin mysqldump等命令)
d 启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)

 

3 数据库初始化

为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化

[[email protected] ~]#  mysqld --initialize --user=mysql

如果是以 mysql 身份运行,则可以去掉 --user 选项

另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,

而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码

[[email protected] ~]# cat /var/log/mysqld.log 
2017-04-13T10:00:36.294549Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-04-13T10:00:36.848923Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-04-13T10:00:36.961351Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-04-13T10:00:37.153654Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0ae74223-2030-11e7-abde-08002774d86f.
2017-04-13T10:00:37.185725Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed‘ cannot be opened.
2017-04-13T10:00:37.229524Z 1 [Note] A temporary password is generated for [email protected]: %kWTz,Ml?3Zs

 现在启动mysql数据库systemctl start mysqld.service

[[email protected] ~]# systemctl start mysqld.service

可以使用下面两个命令对mysql进行停止,启动和重启:

启动:

使用 service 启动:service mysqld start
使用 mysqld 脚本启动:/etc/inint.d/mysqld start
使用 safe_mysqld 启动:safe_mysqld&

停止:

使用 service 启动:service mysqld stop
使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
mysqladmin shutdown 

重启:

使用 service 启动:service mysqld restart
使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

 

 

 

连接数据库

[[email protected] ~]# mysql -u root -p
Enter password:

密码输入:%kWTz,Ml?3Zs

修改密码:

mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new_password‘;

 由于我的linux centos7装在了虚拟机上,所以需要使用宿主机远程访问mysql,连接Mysql出现1045错误。

技术分享

解决方法:

mysql> use mysql; 
mysql> select host,user from user;

需要重新编辑:

Linux连接MySQL出现1045错误 解决方法 
得到如下结果 +---------------+------+ | host | user | +---------------+------+ | localhost | root | +---------------+------+ 5 rows in set (0.00 sec) 发现root用户仅允许本地(localhost)登录 ,如果要远程登录该mysql服务器的话,就需要新建一个普通权限的用户,新建用户使用如下命令: mysql> grant select,update,insert,delete on mas.* to [email protected] identified by "123456"; 这句命令的意思是:新建用户duan,并且只允许该用户在本地(localhost)登录,密码是123456,并且赋予它对mas库中所有表select,update,insert的权限。我们在这有一个mas库,所以用mas.*代表mas库下的所有表。 现在该duan用户,已经可以登录mysql了,但是也还是只能本地登录。 若要duan用户可以远程登录mysql,则还需要如下命令: mysql> update user set host = ‘%‘ where user = ‘duan‘; 现在我们再查看mysql的管理库: mysql> select host,user from user; +-----------+------+ | host | user | +-----------+------+ | % | duan | | localhost | root | +-----------+------+ 5 rows in set (0.00 sec) 这时,在MySQL-Front上新建连接,输入连接名,远端的Linux的IP地址,输入用户名duan和密码123456,选择连接端口,mysql默认的是3306,还是连接不上。 经过多番查找,发现还需要执行 mysql> flush privileges; 把缓存flush后,终于大功告成了。 因为使用update语句修改用户记录,还需要FLUSH语句告诉服务器重载授权表。 当你使用GRANT和REVOKE语句时,表自动重载,而你直接修改授权表时不是。 所以更简便的方法是 mysql> grant select,update,insert,delete on mas.* to [email protected]“%” identified by "123456";

 









以上是关于为啥我在CentOS7下 使用rpm安装MySQL失败?的主要内容,如果未能解决你的问题,请参考以下文章

centos7.2下安装mysql5.7,使用rpm包安装

Linux(Centos7)下rpm方式安装MySQL

centos7下使用yum安装mysql

centos7下使用wget命令安装mysql

centos7环境下在线安装mysql

centos7下rpm安装mysql5.7