Linux 安裝MySQL 報(bào)錯(cuò)file conflicts with file from package mariadb-libs-15.5.65-1.el7.x86_64
歡迎來(lái)到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識(shí)。
問題:
Linux 安裝MySQL 報(bào)錯(cuò):
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
原因分析:
此報(bào)錯(cuò)是說(shuō)mysql安裝包與mariadb包沖突,那么那么只要?jiǎng)h除mariadb包即可。
解決方案:
查詢沖突的內(nèi)容
rpm -qa|grep -i mariadb
刪除沖突的包
yum remove mariadb-libs-5.5.65-1.el7.x86_64
再次安裝測(cè)試,此報(bào)錯(cuò)消失,安裝正常
附Linux安裝mysql的常見問題及解決辦法
一、數(shù)據(jù)庫(kù)安裝完畢,我們需要遠(yuǎn)程連接,出現(xiàn)錯(cuò)誤:1130 - Host 'xxx.xxx.xxx.xx' is not allowed to connect to this MySQL serverConnection closed by foreign host.
錯(cuò)誤編號(hào):1130
問題分析:MySQL 沒有開放遠(yuǎn)程登錄的權(quán)限。
解決方法:
請(qǐng)確認(rèn)您填寫的數(shù)據(jù)庫(kù)服務(wù)器是否正確,并且授權(quán)你這臺(tái) web 服務(wù)器進(jìn)行連接,做如下操作:
開啟 MySQL 的遠(yuǎn)程登陸帳號(hào)有兩大步:
1、確定服務(wù)器上的防火墻沒有阻止 3306 端口。
MySQL 默認(rèn)的端口是 3306 ,需要確定防火墻沒有阻止 3306 端口,否則遠(yuǎn)程是無(wú)法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時(shí)指定了其他端口,請(qǐng)?jiān)诜阑饓χ虚_啟您指定的 MySQL 使用的端口號(hào)。
如果不知道怎樣設(shè)置您的服務(wù)器上的防火墻,請(qǐng)向您的服務(wù)器管理員咨詢。
2、增加允許遠(yuǎn)程連接 MySQL 用戶并授權(quán)。
1)首先以 root 帳戶登陸 MySQL
在 Linux 主機(jī)中在命令提示行下輸入下面的命令。
# mysql -u root -p
Enter password:(輸入密碼)
2)創(chuàng)建遠(yuǎn)程登陸用戶并授權(quán)
命令:grant all PRIVILEGES on testdb.* to shanhy@'123.123.123.123' identified by '123456';
上面的語(yǔ)句表示將 testdb 數(shù)據(jù)庫(kù)的所有權(quán)限授權(quán)給 shanhy 這個(gè)用戶,允許 shanhy 用戶在 123.123.123.123 這個(gè) IP 進(jìn)行遠(yuǎn)程登陸,并設(shè)置 shanhy 用戶的密碼為 123456 。
下面逐一分析所有的參數(shù):
all PRIVILEGES 表示賦予所有的權(quán)限給指定用戶,這里也可以替換為賦予某一具體的權(quán)限,例如:select,insert,update,delete,create,drop 等,具體權(quán)限間用“,”半角逗號(hào)分隔。
testdb.* 表示上面的權(quán)限是針對(duì)于哪個(gè)表的,testdb 指的是數(shù)據(jù)庫(kù),后面的 * 表示對(duì)于所有的表,由此可以推理出:對(duì)于全部數(shù)據(jù)庫(kù)的全部表授權(quán)為“*.*”,對(duì)于某一數(shù)據(jù)庫(kù)的全部表授權(quán)為“數(shù)據(jù)庫(kù)名.*”,對(duì)于某一數(shù)據(jù)庫(kù)的某一表授權(quán)為“數(shù)據(jù)庫(kù)名.表名”。
shanhy 表示你要給哪個(gè)用戶授權(quán),這個(gè)用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123 表示允許遠(yuǎn)程連接的 IP 地址,如果想不限制鏈接的 IP 則設(shè)置為“%”即可。
123456 為用戶的密碼。
使用:grant all PRIVILEGES on *.* to root@'%' with grant option; //賦予任何主機(jī)訪問數(shù)據(jù)的權(quán)限
執(zhí)行了上面的語(yǔ)句后,再執(zhí)行下面的語(yǔ)句,方可立即生效。
flush privileges;
使用如上授權(quán)法操作或試用下面的改表法操作:
1. mysql>use mysql;
2. mysql>update user set host = '%' where user = 'root';
3. mysql>select host, user from user;
二、修改mysql配置文件,調(diào)整數(shù)據(jù)庫(kù)編碼和表名大小寫問題
1、修改配置
在[client]下增加
default-character-set=utf8
在[mysqld]下增加
init-connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
#(注意linux下mysql安裝完后是默認(rèn):區(qū)分表名的大小寫,不區(qū)分列名的大小寫;lower_case_table_names = 0 0:區(qū)分大小寫,1:不區(qū)分大小寫)
lower_case_table_names=1
#(設(shè)置最大連接數(shù),默認(rèn)為 151,MySQL服務(wù)器允許的最大連接數(shù)16384)
max_connections=1000
在[mysql]下增加
default-character-set=utf8
PS:這里面本沒有什么高深之處,重要一點(diǎn)是要注意版本,網(wǎng)上有不少的修改帖子,都是要在[mysqld]下加上 default-character-set=utf8 ,實(shí)際上5.0(>)版本以上是不支持的,如果你這樣修改, 你的mysql將不能啟動(dòng), 報(bào)一個(gè)錯(cuò),信息是"上次退出的時(shí)候沒有保存PID ?? " (大概是這個(gè)錯(cuò)誤提示)
或是啟動(dòng)時(shí)加上參數(shù):mysqld --default-character-set=utf8
或是編譯時(shí)加上參數(shù):./configure --width-charset=utf8
2、保存(如果你是使用vi來(lái)操作,則保存時(shí)會(huì)報(bào)錯(cuò),因?yàn)檫@個(gè)文件是只讀屬性,可以使用 wq! 強(qiáng)制保存退出)。重啟mysql即可。
三. 修改my.cnf配置文件,設(shè)置默認(rèn)引擎為InnoDB,在[mysqld]下面最后增加下面兩句。
default-storage-engine = InnoDB
default_table_type = InnoDB
同時(shí)打開下面的內(nèi)容:
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
四. 修改最大連接數(shù),默認(rèn)是151 ,修改為500
#vi /etc/my.conf
[mysqld]
max_connections=500
驗(yàn)證配置
show variables like 'max_con_%';
五. mysql不能創(chuàng)建函數(shù)問題解決
以下是引用片段:
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] 標(biāo)記后加一行內(nèi)容為 log-bin-trust-function-creators=1
重啟mysql服務(wù)即可
六. mysql 1045錯(cuò)誤
以下是引用片段:
在mysql服務(wù)器上進(jìn)入mysql命令行
執(zhí)行 UPDATE user SET Password=PASSWORD('newpassword') where USER='root'
執(zhí)行 FLUSH PRIVILEGES;
然后 service mysql restart 重啟mysql服務(wù)。
七. 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
處理方法:
默認(rèn)root密碼是空的,樓主直接 mysql進(jìn)去,然后進(jìn)去改啊,例如:
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 查看默認(rèn)密碼
# 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 官方網(wǎng)站 http:///dev.mysql.com/doc/refman/5.1/en/gone-away.html
2. 修改my.cnf for linux [mysqld] max_allowed_packet = 32M
當(dāng)MySQL客戶端或mysqld服務(wù)器收到大于max_allowed_packet字節(jié)的信息包時(shí),將發(fā)出“信息包過大”錯(cuò)誤,并關(guān)閉連接。對(duì)于某些客戶端,如果通信信息包過大,在執(zhí)行查詢期間,可能會(huì)遇到“丟失與MySQL服務(wù)器的連接”錯(cuò)誤。
客戶端和服務(wù)器均有自己的max_allowed_packet變量,因此,如你打算處理大的信息包,必須增加客戶端和服務(wù)器上的該變量。一般情況下,服務(wù)器默認(rèn)max-allowed-packet為1MB
十一、mysql 1030 出現(xiàn) Got error 28 from storage engine 解決方法
錯(cuò)誤描述:
ERROR 1030 (HY000): Got error 28 from storage engine
錯(cuò)誤原因:
臨時(shí)空間不夠,無(wú)法執(zhí)行此SQL語(yǔ)句
解決方法:
將tmpdir指向一個(gè)硬盤空間很大的目錄即可
1、修改 my.cnf 配置文件,在 datadir 下面增加或修改 tmpdir = 臨時(shí)文件目錄位置
2、修改/etc/rc.d/init.d/mysql 啟動(dòng)文件,增加或修改 tmpdir = 臨時(shí)文件目錄位置
臨時(shí)文件一般我們放在 datadir 下,如:tmpdir = /home/data/mysql_data/tmp
藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫(kù)可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。
更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。