一个计算机技术爱好者与学习者

0%

好好学MySQL:CentOS下MySQL数据库导出和导入

1. 前言

mysql数据库导出和导入,在使用navicat等图形化管理工具的情况下很方便。但是,学校服务器上3306端口禁止远程访问,所以,我们只能采用如下两种方案:

  • 在shell中导出导入
  • 安装phpmyadmin

2. 使用shell

2.1. 导出

假设我们要导出的数据库名为vkphp。

mysqldump -uroot -ppassword vkphp > /root/vkphp.sql

执行该命令,则会在/root目录下导出vkphp.sql文件。

2.2. 导入

1、使用xftp上传vkphp.sql到/root目录下。

2、登录mysql

mysql -u root -p

3、新建数据库
CREATE DATABASE vkphp DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

PS:删除数据库
DROP DATABASE vkphp;

4、导入数据
use vkphp;

source /root/vkphp.sql;

3. 使用phpmyadmin

3.1. 安装phpmyadmin

1、到phpmyadmin官网下载phpmyadmin源码,比如phpMyAdmin-4.7.4-all-languages.tar.gz。

2、上传phpMyAdmin-4.7.4-all-languages.tar.gz到/root目录下。

3、解压安装
tar -xvf phpMyAdmin-4.7.4-all-languages.tar.gz

mv phpMyAdmin-4.7.4-all-languages phpmyadmin

mv phpmyadmin [web_path],web_path是web根目录,比如/home/wwwroot。

4、配置

cd /home/wwwroot/phpmyadmin/libraries

vim config.default.php

1
2
3
4
// localhost => 127.0.0.1
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'password';

3.2. nginx配置

1、在phpmyadmin目录中
mkdir log

touch log/phpmyadmin-nginx.log

2、查找php-cgi.sock
find / -name 'php-cgi.sock'

看到的结果为/tmp/php-cgi.sock

3、在nginx的conf/vhost目录中,新建phpmyadmin.voidking.com.conf,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {  
listen 80;
server_name phpmyadmin.voidking.com;
root /home/wwwroot/phpmyadmin;
access_log /home/wwwroot/phpmyadmin/log/phpmyadmin-nginx.log main;
set $php_upstream 'unix:/tmp/php-cgi.sock';

location / {
index index.php;
}

location ~ \.php$ {
fastcgi_pass $php_upstream;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ /\.ht {
deny all;
}
}

4、重启nginx
./nginx -t

./nginx -s reload

如果报错 nginx: [emerg] unknown log format "main" in... ,那么最简单的方法是去掉main。

access_log /home/wwwroot/phpmyadmin/log/phpmyadmin-nginx.log;

5、在万网添加域名解析phpmyadmin。

6、测试访问 http://phpmyadmin.voidking.com

3.3. 导出导入

1、登录phpmyadmin。

2、进入vkphp数据库。

3、单击导航栏“导出”,格式选择SQL,执行。即可导出sql文件到本地。

4、单击导航栏“导入”,选择文件,执行。
但是,最大文件限制为50MB。此时,我们需要修改php.ini和nginx.conf。

(1)查找php.ini和nginx.conf
find / -name 'php.ini'

find / -name 'nginx.conf'

(2)编辑php.ini
vim /usr/local/php/etc/php.ini

输入/upload,查找“upload”的位置,按N键跳转下一个匹配。

修改upload_max_filesize和post_max_size为

1
2
upload_max_filesize = 500M
post_max_size = 500M

(3)编辑nginx.conf
vim /usr/local/nginx/conf/nginx.conf

修改client_max_body_size为

1
client_max_body_size 500m

(4)重启php
/etc/init.d/php-fpm restart

(5)重启nginx
./nginx -t

./nginx -s reload

5、再次查看最大文件限制,就变成了500MB。