MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
cexia
V2EX  ›  MySQL

MySQL load data 中途遭遇 SSH 断线。。。

  •  
  •   cexia · Mar 28, 2016 · 4222 views
    This topic created in 3721 days ago, the information mentioned may be changed or developed.

    情景: 本地通过 SSH 登录远程的 CentOS6.5.

    上传数据文件后,在 mysql client 中执行 load data infile ... into table ...。

    数据文件大小 3 个 GB 左右。

    执行到中途, VPN 中断导致 SSH 断线。

    SSH 重新连上以后,发现 mysqld 进程“僵死”:无法 kill ,无法配置。

    搜了相关资料,定位到一个异常现象是,发生断线后,/var/lib/mysql/mysql.sock 文件被系统删除。

    第一次发生以上现象后,用 CentOS reboot 和 MySQL 重装解决。

    侥幸心理,又试了一次,再次遭遇 SSH 断线。问题依旧。

    无能为力了,求高人指点!

    20 replies    2016-03-29 17:31:35 +08:00
    noahzh
        1
    noahzh  
       Mar 28, 2016   ❤️ 1
    tmux 适合你,而且不是僵死,那是数据没有 load 完....
    UnisandK
        2
    UnisandK  
       Mar 28, 2016   ❤️ 1
    你开个 screen 跑啊。。
    CosWind
        3
    CosWind  
       Mar 28, 2016   ❤️ 1
    同学你需要在后台执行任务, screen , byobu , tmux 之类都可以
    cexia
        4
    cexia  
    OP
       Mar 28, 2016
    @noahzh

    SSH 重连上以后:

    # mysql -u root -p
    Enter password:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    另外 mysqld kill 不掉啊!

    个人觉得是异常。如果有误还请指点!
    noahzh
        5
    noahzh  
       Mar 28, 2016
    你看一下 uptime 不是断线是重启了吧.
    CosWind
        6
    CosWind  
       Mar 28, 2016   ❤️ 1
    找到 pid, kill -9 不可能杀不掉;
    启动的时候看下错误日志,看看是什么原因;
    估计是 data_dir 里的文件 load data 中断之后损坏了,重新 init 一次,恢复一次数据吧
    cexia
        7
    cexia  
    OP
       Mar 28, 2016
    正在研究 screen ,应该就是可行的解决办法。谢谢大家!
    youkochan
        8
    youkochan  
       Mar 28, 2016
    screen ~ 喵~
    tmux ~ 喵~
    micookie
        9
    micookie  
       Mar 28, 2016
    screen
    yghack
        10
    yghack  
       Mar 28, 2016
    为什么不在后台跑
    表示不能理解
    lxy
        11
    lxy  
       Mar 28, 2016
    写个脚本, nohup 挂后台。
    cexia
        12
    cexia  
    OP
       Mar 28, 2016
    @yghack

    "load data infile ... into table ..."

    MySQL 的 SQL 语句怎么用后台来执行?
    hualuogeng
        13
    hualuogeng  
       Mar 28, 2016
    tmux 多好
    staticor
        14
    staticor  
       Mar 28, 2016
    楼主 经历过一些 就成长一些.
    realpg
        15
    realpg  
    PRO
       Mar 28, 2016
    1. 为啥不后台跑,这种需要很长时间执行的东西,直接 ssh 跑,你领导知道么
    2. 你那不是 kill 不掉,是硬 kill 掉以后再起不来吧,你需要删除那个 pid 文件, unix 系的启动脚本大多用 pid 文件来检测是否已经在运行,你 kill 掉非正常退出,没有清理 pid 文件
    11138
        16
    11138  
       Mar 28, 2016
    http://stackoverflow.com/questions/20410904/linux-bash-mysql-load-infile

    然后用 cron 定个时间执行。用 nohup 的话,有些系统还是会因为 ssh 断开而挂掉。
    Mireas
        17
    Mireas  
       Mar 29, 2016
    凡是重要进程一律丢 screen...这是作为使用 LinuxServer 的一个重要知识...
    LINAICAI
        18
    LINAICAI  
       Mar 29, 2016
    SSH 登录有个超时短线啊。。。你这么玩的
    yghack
        19
    yghack  
       Mar 29, 2016
    shell
    anyforever
        20
    anyforever  
       Mar 29, 2016
    @UnisandK 9494,这么重要的事,一定要保证后续能顺利进行啊。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2427 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 15:59 · PVG 23:59 · LAX 08:59 · JFK 11:59
    ♥ Do have faith in what you're doing.