一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径)
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
注:/usr/local/mysql/bin/ ---> mysql的data目录
二、导入数据库
1、首先建空数据库
2、导入数据库
方法一:
(1)选择数据库
(2)设置数据库编码
(3)导入数据(注意sql文件的路径)
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
建议使用第二种方法导入。
注意:有命令行模式,有sql命令;
二、本地navicat无法连接Linux服务器上的mysql数据库
连接MySQL数据库出现10038错误的各种解决方法(亲试检查用户、防火墙端口及配置文件等) 以前我的几个网站放在dreamhost的时候,我总是喜欢用Navicat连接MySQL数据库,这样可以不用命令行,直接在图像界面里修改操作数据库,非常方便,堪称MySQL图形化管理工具中的神器。最近刚弄了个阿里云的ECS服务器,配置好后,赶紧打开Navicat,输入IP地址,用户名和密码,测试连接,10038错误,显示 can't connect to MySQL server on 'localhost'(10038).:
这个错误比较熟悉了,在用dreamhost的时候,只要修改一下允许root用户远程登录就可以。在咱们的ECS服务器里可以用命令。
1、看MySQL的用户是不是限制了远程登录,也就是看host是localhost还是%。
登录mysql数据库,查看用户情况:
查看mysql用户的命令:mysql> SELECT User, Host FROM mysql.user;
果然,显示的root为localhost本地登录,修改命令如下:
mysql> grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
之后再次使用select查看用户:
看到红色方框里多出的这一行了吧,用户root已经成功设置为可以远程登录mysql数据库啦。
重启MySQL,
#service mysqlrestart;
然后用本地navicat再次进行连接测试!
发现还是不行的话请看第2步!
2、查看3306端口是否打开
那再看看是不是防火墙3306端口没有打开?端口查看命令:
[root@~]# netstat -talnp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local AddressForeign Address State PID/Program name
tcp6 0 0 :::3306 :::*LISTEN 1269/mysqld
看到如上黄色部分显示,知道3306端口已经是打开的,没有问题。
然后用本地navicat再次连接看是否成功!(我的到此已成功连接)
如果还是不能成功,查看服务器防火墙是否关闭;如果防火墙必要,那么请配置开启防火墙允许访问3306端口的配置。