把mysql数据库的数据转移到oracle数据库。目前mysql数据库的备份文件为.sql文件,每个表一个.sql文件,把这些文件的数据导入到oracle数据库。
二、mysql数据恢复
mysql备份恢复到myql测试库:
因为本次试验采用的mysql备份为.sql文件,所以采用批量source处理。批量执行.sql文件,实现在mysql测试库重新建立表并恢复数据。
如果备份文件采用的是其他方式,则需要用对应的恢复办法进行恢复。
恢复操作:
[root@localhost~]#mysql-uroot-p
Enterpassword:---输入root用户的密码。
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis90
Serverversion:5.0.45Sourcedistribution
Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.
mysql>usetest;
Databasechanged
mysql>sourceactors.sql;
mysql>sourceact_tactics.sql;
mysql>………………
一次把所有的.sql文件贴在mysql的命令窗口,批量执行即可。
注:因为mysql库是生产库,不能直接做实验,所以才把备份恢复到一个测试库中,进行测试,实际中如果可以直接连mysql数据库,则这一步可以省略。
三、通过oracelsqldeveloper转换数据库
Mysql转到oracle数据库,要根据不同情况选择不同的方法:
1、从现有的mysql库直接转到oracle数据库
这是不用恢复mysql数据库,直接可以用sqldeveloper转到oracle里,这时要现在oracle数据库中建好用户(用户名为mysql数据库名),选好默认表空间,mysql数据就会导入到该用户下。
2、从mysql数据库导出的sql文件导入到oracle数据库
如果是只有mysql的导出文件,则需要先把该文件恢复到一个mysql数据库中,然后再把恢复后的mysql数据库转换到oracle数据库中。
这种情况要注意oracle数据库的用户名。因为sqldeveloper把mysql转换到oracle数据库中时,会把mysql的数据存放到一个用户下,这个用户名一定会和mysql的数据库名相同。如果oracle中已有这个用户,则数据直接导入到该用户下;如果没有这个用户,则sqldeveloper会直接创建这样的用户,并把数据导入到该用户下。需要注意的是,sqldeveloper默认创建的oracle数据库用户的默认表空间是user,如果不注意,很有可能会导致user表空间爆满!!!所以这种情况最好先建一个和mysql数据库名一样的oracle用户,以防止user表空间爆满影响数据导入。
1、安装oracelsqldeveloper
首先从oracle官方网站下载oraclesqldeveloper,下载的sqldeveloper是没有集成jdk的,如果本机也没有安装过jdk,则需要先安装对应版本的jdk,这个可以查找sqldeveloper的readme.html文件,里面会说明需要的jdk。
安装的第一步会让你选择JDK,否则无法安装。安装非常简单,这里就不做说明。
Windowd64位sqldeveloper下载:
Windowd32位sqldeveloper下载:
jdk-6u27-windows-x64.exe下载地址(最第要用jdk-6u11以后的版本):
mysql-connector-java各版本下载:
mysql-connector-java配置:
以上的mysql-connector-java-5.0.8-bin.jar就是mysql-connector-java-5.0.8.zip解压出来的文件。配置好jdbc后,即可开始数据库连接。
如果要连接sqlserver,则下载jtds-1.2.5-dist.zip配置即可。
2、连接数据库
连接oracle的用户要有createtable权限,一般用system用户就可以。连mysql数据库因为是读取数据,用什么用户都可以(一般默认是root用户)。
转换后oracle数据库会多一个新的用户名,就是mysql的数据库名。除了这个用户,系统还会自动建一个名为EMULATION的用户,该用户可以锁定或删除都可以。
打开sqldeveloper.exe:
新建oracle数据库连接:
Sqldeveloper转换数据时会产生一些字典表,这些字典表会保存到sqldeveloper链接oracle数据库的用户中,如果这个用户的名字和Mysql数据库名字不同,则mysql数据不会保存在该用户下。
点击测试,测试连接:
点击保存:
点击连接,即可连接到oracle数据库:
新建mysql数据库连接:
1.)选择mysql选项卡
2.)填写mysql数据库信息
填写完进行测试,成功后点击保存,并连接到mysql数据库。
3、复制表
如果不用迁移整个数据,只是迁移表的数据,则可以直接在mysql数据库库中选中要转移的表,点“右键”选“复制到oracle”即可。此时会把表转移到sqldeveloper链接oracle数据库的用户下,并且该用户下不能有同名的表。
不过从以往的经验看,复制表要比迁移数据库效率低,所以如果是复制所有的表,最好用移植数据库功能。
4、移植数据库
点击“工具”,选择“移植”
移植简介
选择要转换的mysql数据库,添加到列表中:
指定转换规则,可以根据自己的情况设定字段属性的转换,也可以新添加规则。不过一般选择默认的就能满足需求。
选择目标数据库
查看转换概要,点击“完成”开始转换
转换完成后需要检查数据库的各种对象是否完成,状态是否正确,尤其是表的数量一定要核对,因为有时候有些表会不能成功转换,需要手工操作。
四、修改oracle用户名
如果要是先建好用户(用户名用mysql数据库的数据库名),定义好用户的默认表空间,然后再做mysql到oracle转换,这样就可以即把表存放到正确的位置,又可以用正确的用户名。也可以改变数据库的默认表空间防止自动创建用户的默认表空间使用user表空间:
SQL>ALTERDATABASEDEFAULTTABLESPACEmis_data;
注意:改过名字的用户,权限会继承,但是默认表空间不会继承,需要手工再设定默认表空间:
SQL>ALTERUSEROAidentifiedbyoadefaulttablespaceMIS_DATAtemporarytablespaceTEMP;
修改底层表USER$更换用户名
注:修改oracle用户名需要sys用户,或者给操作用户操作user$表的权限。
SQL>grantselectonuser$TOsystem;
SQL>grantupdateonuser$tosystem;
1、查看用户的user#
SQL>showuser
USERis"SYSTEM"
SQL>selectuser#,NAMEfromSYS.user$WHERENAME='TEST';
USER#NAME
----------------------------------------
93TEST
2、修改用户名
SQL>UPDATEUSER$SETNAME='新用户名'WHEREUSER#=93;
已更新1行。
注:单引号中的新用户名一定要用大写,如果是小写,下面会提示找不到该用户。
3、提交完成
SQL>COMMIT;
4、修改系统检查点
SQL>ALTERSYSTEMCHECKPOINT;
5、修改新用户密码
SQL>ALTERUSER新用户名IDENTIFIEDBY新密码;
6、如果提示新用户不存在,则刷新shared_pool
SQL>ALTERUSER新用户名IDENTIFIEDBY新密码
*ERROR位于第1行:ORA-01918:用户'新用户'不存在
SQL>ALTERSYSTEMFLUSHSHARED_POOL;
7、刷新shared_pool后重新修改用户密码
SQL>ALTERUSER新用户IDENTIFIEDBY新密码;
8、测试连接
SQL>CONN新用户/新密码@orcl;
9、查看新用户是否拥有原用户的对象
SQL>SELECT*FROMTAB;
五、mysql远程连接1、改表法
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改称"%"。代码如下:
mysql-uroot–pvmware
mysql>usemysql;
mysql>updateusersethost='%'whereuser='root';
mysql>selecthost,userfromuser;
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANTALLPRIVILEGESON*.*TO'myuser'@'%'IDENTIFIEDBY'mypassword'WITHGRANTOPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码。
GRANTALLPRIVILEGESON*.*TO'myuser'@'192.168.1.3'IDENTIFIEDBY
'mypassword'WITHGRANTOPTION;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句mysql>FLUSHRIVILEGES使修改生效,就可以了。
3、另外一种方法
在安装mysql的机器上运行:
1)进入MySQL服务器
d:\mysql\bin\>mysql-hlocalhost-uroot
2)赋予任何主机访问数据的权限
mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'WITHGRANTOPTION
3)修改生效
mysql>FLUSHPRIVILEGES
4)退出MySQL服务器
mysql>EXIT
如果经过上面的操作,还不能解决问题,那可能就是服务器的安全设置问题,是不是ip安全策略或防火墙没有开启3306的例外。
4、安全模式修改用户密码
[root@mailmysql]#mysql-uroot-p
Enterpassword:
ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)
[root@localhostmysql]#servicemysqldstop
[root@localhostmysql]#mysqld_safe--user=mysql--skip-grant-tables--skip-networking&
然后可以不用密码直接进入系统:
[root@localhostmysql]#mysql-urootmysql
进入系统后可以直接修改root用户的密码:
mysql>UPDATEuserSETPassword=PASSWORD('newpassword')whereUSER='root';
mysql>FLUSHPRIVILEGES;
mysql>quit
[root@localhostmysql]#servicemysqldstart
[root@localhostmysql]#mysql-uroot-p
Enterpassword:<输入新设的密码newpassword>
mysql>
启动mysql安全模式的命令参数:
skip-networking:不监听3306,说白了就是不启动mysql的网络服务。
user=mysql:这俺就不形容了。
六、linux下mysql卸载和安装1、MySQLRPM版本的安装及卸载
1、前期准备
由于redhatEnterprise5中自带一个mysql的版本,如果在安装linux前未选择mysql的安装此步就可跳过,因为我当时安装了现在将其卸载,步骤如下:
a.查找已安装的myslq版本
#rpm-qa|grepmysql
注意大小写,如果mysql不行就换MySQL。在屏幕上将显示已安装的mysql包名如:mysql-5.0.22-2.1.0.1;
b.将搜索出的包名卸载
#rpm–e--nodepsmysql-5.0.22-2.1.0.1
nodeps表示强制删除
c.再次查找该包名
如果没有结果输出则表明已将该版本的mysql卸载了。
2.准备安装资源
a.perl-DBI-1.5.2-1.fc6.i386.rpm
该包为是安装mysql的依赖,没它mysql安装不起,查看是否安装,如果安装了就不需要了,可以通过#rpm-qa|grepperl*查看是否已经安装,该包在linux系统盘上可以找到,以下提供该包下载。
b.MySQL-server-community-5.0.67-0.rhel5.rpm
MySQL-client-community-5.0.67-0.rhel5.rpm
c.安装文件上传到服务器
准备好相应的安装包后将其利用FTP上传到linux系统路径下。
3.开始安装
a.先安装perl-DBI-1.5.2-1.fc6.i386.rpm
#rpm-ivhperl-DBI-1.5.2-1.fc6.i386.rpm
查看是否安装成功rpm-qa|grepperl-DBI*
b.安装好perl,接着先安装mysqlserver版
#rpm-ivhMySQL-server-community-5.0.67-0.rhel5.rpm
查看是否安装成功rpm-qa|grepMySQL,查看该进程是否启动ps-ef|grepMySQL,由于安装好server版后就已经启动了。
c.安装好server版,开始接着安装client版:
#rpm-ivhMySQL-client-community-5.0.67-0.rhel5.rpm
查看是否安装成功#rpm-qa|MySQL。
d.好了到此就已经安装完毕,测试是否可以运行:
#mysql
出现mysql>命令符说明安装成功,默认用户为root没有密码所以可以直接进入。
2、MySQL二进制版本的安装及卸载
二进制版本的mysql是已经编译好的,无需configure,makemakeinstall等步骤,只需配置一下即可使用,卸载也方便,直接删除即可;现在以mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz版本做介绍:
1.改变该文件为可执行权限
#chmod755mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
2.将解压后生成的目录,复制到/usr/local/下并改名为mysql
#tar-xvzfmysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
2.建立mysql组
#groupaddmysql
3.建立mysql用户并且加入到mysql组中
#useraddmysql-gmysql
4.创建mysql配置文件
#cp/usr/local/mysql/support-files/my-medium.cnf/etc/my.cnf
在support-files目录下有4个模版文件,我们选择其中一个座位Mysql的配置文件,覆盖/etc/my.cnf(系统默认的配置,其中设置了性能参数和Mysql的一些路径参数)。
5.进入mysql目录
#cd/usr/local/mysql
初试化表并且规定用mysql用户来访问
#./scripts/mysql_install_db--user=mysql
初始化表以后就开始给mysql和root用户设定访问权限。
6.设定mysql用户访问权限
#chown-Rmysqldata
设定mysql用户能访问/usr/local/mysql/data,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,mysql_install_db时产生。
#chown-Rmysqldata/.
设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件。
#chgrp-Rmysql.
设定mysql组能够访问/usr/local/mysql。
#/usr/local/mysql/bin/mysqld_safe--user=mysql&
7.进入bin目录
cd/usr/local/mysql/bin
8.运行mysq命令
如果没有没有启动或出现Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'。
解决方法:
#cd/usr/local/mysql/support-files
启动即可既可在生成/tmp/mysql.sock
#./mysql.serverstart
如果/tmp/mysql.sock无该文件存在,且mysql是处于开启的状态。
解决方法:
#netstat-an|grep3306//查看3306端口
#ps-ef|grepmysql//查找mysql进程
#kill-9进程号//强制删除mysql的进程号
#./mysql.serverstart//启动即可既可在生成/tmp/mysql.sock
如果在任意路径下如数mysql命令得到的无该命令咋办呢?
修改/etc/profile文件,在文件中加入
PATH=$PATH:/usr/local/mysql/bin/
exportPATH
保存即可退出执行source/etc/profile。以上操作完既可以在任意目录执行#mysql命令。
如果想执行servicemysqlstartorrestartstop命令咋办的?在不能老#./mysql.serverstart
将mysql.server复制一份到/etc/rc.d/init.d下并改名mysql或建个连接文件,假设当前目录为/etc/rc.d/init.d
如:#cp/usr/local/mysql/support-files/mysql.servermysql(复制)
或:#ln-s/usr/local/mysql/support-files/mysql.servermysql(建立连接文件)
完成以上操作即可执行servicemysqlstart(orrestartstop)
用如下命令修改MYSQL密码
#/usr/local/mysql/bin/mysqladmin-urootpasswordyourpassword
默认安装密码为空,为了安全你必须马上修改。
#chmod700/etc/init.d/mysql
#chkconfig--addmysqld
#chkconfig--level345mysqlon
copy编译目录的一个脚本设置使mysql每次启动都能自动运行。
#servicemysqlstart
#netstat-atln
//启动mysql服务
//查看3306端口是否打开。要注意在防火墙中开放该端口。
可以用telnetlocalhost3306来测试一下,如果有反映,那就表明安装成功了。
七、linux下修改mysql字符集1.查找MySQL的cnf文件的位置
[root@localhost~]#find/-iname'*.cnf'-print
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-small.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/texmf/web2c/texmf.cnf
/usr/share/texmf/web2c/mktex.cnf
/usr/share/texmf/web2c/fmtutil.cnf
/usr/share/texmf/tex/xmltex/xmltexfmtutil.cnf
/usr/share/texmf/tex/jadetex/jadefmtutil.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-innodb-heavy-4G.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-large.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-small.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-medium.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-huge.cnf
2.新建my.cnf文件
拷贝small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一个到/etc下,命名为my.cnf。
[root@localhost~]#cp/usr/share/mysql/my-medium.cnf/etc/my.cnf
3.修改my.cnf
[root@localhost~]#vi/etc/my.cnf
在[client]下添加
default-character-set=utf8
在[mysqld]下添加
4.重新启动MySQL
[root@localhost~]#/etc/rc.d/init.d/mysqlrestart
ShuttingdownMySQL[确定]
StartingMySQL.[确定]
YourMySQLconnectionidis1
Serverversion:5.1.22-rc-community-logMySQLCommunityEdition(GPL)
5.查看字符集设置
mysql>showvariableslike'collation_%';
+----------------------+-----------------+
|Variable_name|Value|
|collation_connection|utf8_general_ci|
|collation_database|utf8_general_ci|
|collation_server|utf8_general_ci|
3rowsinset(0.02sec)
mysql>showvariableslike'character_set_%';
+--------------------------+----------------------------+
|character_set_client|utf8|
|character_set_connection|utf8|
|character_set_database|utf8|
|character_set_filesystem|binary|
|character_set_results|utf8|
|character_set_server|utf8|
|character_set_system|utf8|
|character_sets_dir|/usr/share/mysql/charsets/|
8rowsinset(0.02sec)
6.其他的一些设置方法
修改数据库的字符集
mysql>usemydb
mysql>alterdatabasemydbcharactersetutf-8;
创建数据库指定数据库的字符集
mysql>createdatabasemydbcharactersetutf-8;
通过配置文件修改:
修改/var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
为
default-collation=utf8_general_ci
重起MySQL:
通过MySQL命令行修改:
mysql>setcharacter_set_client=utf8;
QueryOK,0rowsaffected(0.00sec)
mysql>setcharacter_set_connection=utf8;
mysql>setcharacter_set_database=utf8;
mysql>setcharacter_set_results=utf8;
mysql>setcharacter_set_server=utf8;
mysql>setcharacter_set_system=utf8;
QueryOK,0rowsaffected(0.01sec)
mysql>setcollation_connection=utf8;
mysql>setcollation_database=utf8;
mysql>setcollation_server=utf8;
查看:
8rowsinset(0.03sec)
3rowsinset(0.04sec)
7.MYSQL字符集问题
MySQL的字符集支持(CharacterSetSupport)有两个方面:字符集(Characterset)和排序方式(Collation)。对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。
但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?
(1)编译MySQL时,指定了一个默认的字符集,这个字符集是latin1;
(2)安装MySQL时,可以在配置文件(my.ini)中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时character_set_server被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用
latin1存储,不过我们如果安装MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把
default_character_set设置为UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用UTF-8存储。
2.查看默认字符集
默认情况下,mysql的字符集是latin1(ISO_8859_1)。通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql>SHOWVARIABLESLIKE'character%';
+--------------------------+---------------------------------+
|character_set_client|latin1|
|character_set_connection|latin1|
|character_set_database|latin1|
|character_set_results|latin1|
|character_set_server|latin1|
|character_sets_dir|D:"mysql-5.0.37"share"charsets"|
mysql>SHOWVARIABLESLIKE'collation_%';
3.修改默认字符集
(1)最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如default-character-set=utf8
character_set_server=utf8
修改完后,重启mysql的服务,servicemysqlrestart,查看字符集,发现数据库编码均已改成utf8:
(2)还有一种修改字符集的方法,就是使用mysql的命令
mysql>SETcharacter_set_client=utf8;
八、mysql查看数据库结构1、查看表信息
mysql>desc表名;
mysql>showcolumnsfrom表名;
mysql>describe表名;
mysql>showcreatetable表名;
mysql>useinformation_schema
mysql>select*fromcolumnswheretable_name='表名';
2、查看数据库
mysql>showdatabases;
mysql>use数据库名;
mysql>showtables;
3、altertable操作
原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,执行以下sql修改索引
mysql>altertabletb_webparamcounterdropindexAK_PAS_Name;
mysql>altertabletb_webparamcounteraddUNIQUEAK_PAS_Name(PC_ID,PAC_Name);
若发现索引的逻辑不对,还需要再加一个字段进去,执行:
mysql>altertabletb_webparamcounteraddUNIQUEAK_PAS_Name(PC_ID,PAC_Name,PAC_Value);
注意:这时的PC_ID,PAC_Name,PAC_Value三个字段不是FOREIGNKEY,否则必需先dropFOREIGNKEY,再重做上一步才行。
4、查看存储过程
mysql>showprocedurestatus;
九、linux下mysql命令集1.linux下启动mysql
[root@localhost~]#mysqladminstart
/ect/init.d/mysqlstart(前面为mysql的安装路径)
2.linux下重启mysql
[root@localhost~]#mysqladminrestart
/ect/init.d/mysqlrestart(前面为mysql的安装路径)
3.linux下关闭mysql的命令:
[root@localhost~]#mysqladminshutdown
/ect/init.d/mysqlshutdown(前面为mysql的安装路径)
4.连接本机上的mysql
进入目录mysql\bin,再键入命令mysql-uroot-p,回车后提示输入密码。
退出mysql命令:exit(回车)
5.修改mysql密码
mysqladmin-u用户名-p旧密码password新密码,或进入mysql命令行SETPASSWORDFORroot=PASSWORD("root");
6.增加新用户
注意:mysql环境中的命令后面都带一个分号作为命令结束符。
grantselect,insert,update,deleteon*.*totestIdentifiedby"123";
7.有关mysql数据库方面的操作
1、显示数据库列表。
2、显示库中的数据表:
mysql>usemysql;//打开库
3、显示数据表的结构:
4、建库:
mysql>createdatabase库名;
5、建表:
mysql>use库名;
mysql>createtable表名(字段设定列表);
6、删库和删表:
mysql>dropdatabase库名;
mysql>droptable表名;
7、将表中记录清空:
mysql>deletefrom表名;
8、显示表中的记录:
mysql>select*from表名;
9、编码的修改
如果要改变整个mysql的编码格式:
启动mysql的时候,mysqld_safe命令行加入
--default-character-set=gbk
如果要改变某个库的编码格式:在mysql提示符后输入命令
alterdatabasedb_namedefaultcharactersetgbk;
8.数据的导入导出
1、文本数据转到数据库中
文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:
1nameduty2006-11-23
数据传入命令loaddatalocalinfile"文件名"intotable表名;
2、导出数据库和表
mysqldump--optnews>news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump--optnewsauthorarticle>author.article.sql(将数据库news中的author表和article表备份到author.article.sql文件,author.article.sql是一个文本文件,文件名任取。)
mysqldump--databasesdb1db2>news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump-hhost-uuser-ppass--databasesdbname>file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中
mysqldump--all-databases>all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)
3、导入数据
mysql mysql>sourcenews.sql;(在mysql命令下执行,可导入表) 9.连接MySQL 格式:mysql-h主机地址-u用户名-p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>。 2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql-h110.110.110.110-uroot-pabcd123 (注:u与root可以不用加空格,其它也一样) 3、退出MYSQL命令:exit(回车)。 11.修改密码 格式:mysqladmin-u用户名-p旧密码password新密码 1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令: mysqladmin-uroot-passwordab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、例2:再将root的密码改为djg345。 mysqladmin-uroot-pab12passworddjg345 12.增加新用户 注意:和上面不同,下面的因为是MySQL环境中的命令,所以后面都带一个分号作为命令结束符。 grantselect,insert,update, deleteon*.*totest1@\"%\"Identifiedby\"abc\"; deleteonmydb.*totest2@localhostidentifiedby\"abc\"; 如果你不想test2有密码,可以再打一个命令将密码消掉。 grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby\"\"; 十、linuxmysql常见问题1、Accessdeniedforuser'root'@'localhost' 系统是ubuntu6.06,最近新装好的mysql在进入mysql工具时,总是有错误提示: #mysql-uroot-p ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:NO) 使用网上介绍的方法修改root用户的密码: #mysqladmin-uroot-ppassword'newpassword' mysqladmin:connecttoserverat'localhost'failed error:'Accessdeniedforuser'root'@'localhost'(usingpassword:YES)' 现在终于被我找到了解决方法,如下(请先测试方法三): 方法一: #/etc/init.d/mysqlstop #mysqld_safe--user=mysql--skip-grant-tables--skip-networking& #mysql-urootmysql #/etc/init.d/mysqlrestart 方法二: 直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码: #mysql-udebian-sys-maint-p Enterpassword:<输入[client]节的密码> 方法三: Enterpassword:<输入/etc/mysql/debian.cnf文件中[client]节提供的密码> 至此,问题解决! 2、sqlplus连接mysql 无法查询null字段,在$ORACLE_HOME/hs/admin/initmysql.ora文件中加入:HS_FDS_SQLLEN_INTERPRETATION=32即可。 不能直接访问mysql的int字段。在$ORACLE_HOME/hs/admin/initmysql.ora文件中加入:HS_FDS_FETCH_ROWS=1即可。