帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Linux 安装MySQL 报错file conflicts with file from package mariadb-libs-15.5.65-1.el7.x86_64

Linux 安装MySQL 报错file conflicts with file from package mariadb-libs-15.5.65-1.el7.x86_64

2024-11-25 16:11:49 887

Linux 安装MySQL 报错file conflicts with file from package mariadb-libs-15.5.65-1.el7.x86_64


欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


问题:

Linux 安装MySQL 报错:

file /usr/share/mysql/charsets/README from install of MySQL-server-5.6.24-1.el6.x86_64 conflicts with file from package mariadb-libs-1:5.5.65-1.el7.x86_64


原因分析:

此报错是说mysql安装包与mariadb包冲突,那么那么只要删除mariadb包即可。


解决方案:

查询冲突的内容

rpm -qa|grep -i mariadb


删除冲突的包

yum remove mariadb-libs-5.5.65-1.el7.x86_64


再次安装测试,此报错消失,安装正常


附Linux安装mysql的常见问题及解决办法

一、数据库安装完毕,我们需要远程连接,出现错误:1130 - Host 'xxx.xxx.xxx.xx' is not allowed to connect to this MySQL serverConnection closed by foreign host.

错误编号:1130

问题分析:MySQL 没有开放远程登录的权限。

解决方法:

    请确认您填写的数据库服务器是否正确,并且授权你这台 web 服务器进行连接,做如下操作:

开启 MySQL 的远程登陆帐号有两大步:

1、确定服务器上的防火墙没有阻止 3306 端口。

MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。

如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。

2、增加允许远程连接 MySQL 用户并授权。

1)首先以 root 帐户登陆 MySQL


在 Linux 主机中在命令提示行下输入下面的命令。

# mysql -u root -p

Enter password:(输入密码)

2)创建远程登陆用户并授权

命令:grant all PRIVILEGES on testdb.* to shanhy@'123.123.123.123' identified by '123456';

上面的语句表示将 testdb 数据库的所有权限授权给 shanhy 这个用户,允许 shanhy 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 shanhy 用户的密码为 123456 。

下面逐一分析所有的参数:

all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

testdb.* 表示上面的权限是针对于哪个表的,testdb 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。

shanhy 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

123456 为用户的密码。

使用:grant all PRIVILEGES on *.* to root@'%' with grant option;  //赋予任何主机访问数据的权限

执行了上面的语句后,再执行下面的语句,方可立即生效。

flush privileges;

使用如上授权法操作或试用下面的改表法操作:

   1. mysql>use mysql; 

   2. mysql>update user set host = '%' where user = 'root'; 

   3. mysql>select host, user from user;

二、修改mysql配置文件,调整数据库编码和表名大小写问题

1、修改配置

在[client]下增加

default-character-set=utf8

在[mysqld]下增加

init-connect='SET NAMES utf8'

character-set-server=utf8

collation-server=utf8_general_ci

#(注意linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;lower_case_table_names = 0    0:区分大小写,1:不区分大小写)

lower_case_table_names=1

#(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384)

max_connections=1000

在[mysql]下增加

default-character-set=utf8

PS:这里面本没有什么高深之处,重要一点是要注意版本,网上有不少的修改帖子,都是要在[mysqld]下加上 default-character-set=utf8 ,实际上5.0(>)版本以上是不支持的,如果你这样修改, 你的mysql将不能启动, 报一个错,信息是"上次退出的时候没有保存PID ??  " (大概是这个错误提示)

或是启动时加上参数:mysqld --default-character-set=utf8

或是编译时加上参数:./configure --width-charset=utf8

2、保存(如果你是使用vi来操作,则保存时会报错,因为这个文件是只读属性,可以使用 wq! 强制保存退出)。重启mysql即可。

三. 修改my.cnf配置文件,设置默认引擎为InnoDB,在[mysqld]下面最后增加下面两句。

default-storage-engine = InnoDB

default_table_type = InnoDB

同时打开下面的内容:

innodb_data_home_dir = /var/lib/mysql/

innodb_data_file_path = ibdata1:10M:autoextend

innodb_log_group_home_dir = /var/lib/mysql/

# You can set .._buffer_pool_size up to 50 - 80 %

# of RAM but beware of setting memory usage too high

innodb_buffer_pool_size = 16M

innodb_additional_mem_pool_size = 2M

# Set .._log_file_size to 25 % of buffer pool size

innodb_log_file_size = 5M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

四. 修改最大连接数,默认是151 ,修改为500

#vi /etc/my.conf

[mysqld]

max_connections=500

验证配置

show variables like 'max_con_%';

五. mysql不能创建函数问题解决

以下是引用片段:

Error Code : 1418

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

(0 ms taken)

解决方法如下:

在my.ini(linux下为my.cnf)文件中 [mysqld] 标记后加一行内容为 log-bin-trust-function-creators=1

重启mysql服务即可

六. mysql 1045错误

以下是引用片段:

在mysql服务器上进入mysql命令行

执行 UPDATE user SET Password=PASSWORD('newpassword') where USER='root' 

执行 FLUSH PRIVILEGES;

然后 service mysql restart 重启mysql服务。

 七. centos 安装mysql冲突解决方法


Preparing...                ########################################### [100%]


        file /usr/share/mysql/charsets/README from install of MySQL-server-community-5.1.44-1.rhel5.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686


        file /usr/share/mysql/charsets/Index.xml from install of MySQL-server-community-5.1.44-1.rhel5.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686


        file /usr/share/mysql/charsets/armscii8.xml from install of MySQL-server-community-5.1.44-1.rhel5.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686


        file /usr/share/mysql/charsets/ascii.xml from install of MySQL-server-community-5.1.44-1.rhel5.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686   

解决办法:

卸载mysql:rpm -e --nodeps mysql-libs-5.1.*

八. mysql 5.6 安装后登录不了问题

error:you must SET PASSWORD before executing this statement

处理方法:

默认root密码是空的,楼主直接 mysql进去,然后进去改啊,例如:

mysql> SELECT 1;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql> SET PASSWORD = PASSWORD('new_password');

Query OK, 0 rows affected (0.01 sec)

九、mysql5.6 查看默认密码

# more .mysql_secret

# more /root/.mysql_secret

# The random password set for the root user at Wed Jun 26 18:23:34 2013 (local time): x7YrI4bP

十、SQL Error 1366 sqlstate HY000

解决方案:

1. 参考Mysql 官方网站 http:///dev.mysql.com/doc/refman/5.1/en/gone-away.html

2. 修改my.cnf for linux [mysqld] max_allowed_packet = 32M

当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。

客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。一般情况下,服务器默认max-allowed-packet为1MB

十一、mysql 1030  出现 Got error 28 from storage engine 解决方法

错误描述:

ERROR 1030 (HY000): Got error 28 from storage engine  

错误原因:

临时空间不够,无法执行此SQL语句  

解决方法:

将tmpdir指向一个硬盘空间很大的目录即可

1、修改 my.cnf 配置文件,在 datadir 下面增加或修改 tmpdir = 临时文件目录位置

2、修改/etc/rc.d/init.d/mysql 启动文件,增加或修改 tmpdir = 临时文件目录位置

临时文件一般我们放在 datadir 下,如:tmpdir = /home/data/mysql_data/tmp


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: