关于seafile启动的问题解决

过了一个国庆,同事反映说seafile服务挂掉了,没法正常链接。php

刚才解决了一下,把相关问题简要记录一下:html

1.首先链接阿里云,得到相关IP地址(若是已知IP地址,则不须要该步骤)mysql

2.经过xshell或者其余ssh工具链接上去(此类工具不少,好比putty、secureCRT、MobaXterm Personal Edition等)sql

3.首次查看seafile进程是否正常: ps -ef | grep seafile ;shell

4.尝试启动seafile服务,并监控和检查相关log,看是否正常:数据库

报错信息以下:django

$ ./seafile.sh start
SQLException: Failed to start connection pool -- Access denied for user 'root'@'localhost' (using password: YES)
 raised in ConnectionPool_start at src/db/ConnectionPool.c:287
failed to run "ccnet-server -t"
5.在上面这一步报错,则相应须要解决该问题。
下面是一些解决步骤:
(1)查看相关log位置:vi /home/haochuang/Seafile/logs/seafile.log,更多log:
[root@AY140714154144069b22Z ~]# ls -la /home/tuyou/Seafile/logs
total 6236
drwxr-xr-x 2 root  root     4096 Oct 10 15:06 .
drwxrwxr-x 8 haochuang haochuang    4096 Oct 10 11:03 ..
-rw-r--r-- 1 root  root   213261 Oct 10 15:07 ccnet.log
-rw-r--r-- 1 root  root    24055 Oct 10 15:06 controller.log
-rw-r--r-- 1 root  root   222309 Oct 10 15:06 seafile.log
-rw-r--r-- 1 root  root  5892209 Oct 10 10:50 seahub_django_request.log
-rw-r--r-- 1 root  root        0 May 13 14:00 seahub.log
(2)检查磁盘空间是否足够:df -lh
(3)查看当前已经启动的seafile服务,经过  pgrep 命令 来检查 seafile/seahub 的进程是否在运行:
$ pgrep -f seafile-controller # 检查 seafile 进程是否在运行
$ pgrep -f "manage.py run_gunicorn" # 检查 seahub 进程是否在运行
 完全杀掉相关服务,要强行杀死 seafile/seahub 进程,把上面的 pgrep 换成  pkill 命令便可:
$ pkill -f seafile-controller 
$ pkill -f "manage.py run_gunicorn"
$ pkill -f httpserver
重启seafile:
./seafile.sh restart # 中止当前的 seafile 进程,而后重启 seafile
./seahub.sh restart # 中止当前运行的 seahub 进程,并在 8000 端口从新启 seahub
 
(4)检查相关musql配置状况,并直接手动链接;
相关信息也能够查看seafile官网帮助信息: http://manual-cn.seafile.com/deploy/deploy/using_mysql.html
(5)重置mysql数据库帐号密码,因为该机器上面我当时配置了seafile和redmine,端口分别为 3306 和 3307,担忧会有影响的话,能够备份部分关键文件:
发现个人mysql链接时候报错信息以下:
 Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' 问题的解决
查了一下,发现这种问题须要强行从新修改密码,方法以下:

/etc/init.d/mysqld stop   (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH链接
[root@localhost ~]# mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit
 

(6)修改完成以后再次重启seafile,发现基本正常了。bash

(7)其余补充信息:服务器

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)ssh

关于该问题,在解决过程当中,看到网上的朋友说有多种解决办法:

Red Hat Enterprise Linux 5服务器上mysql启动报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
缘由1-启动命令错误:
我开始的时候直接输入命令:mysql start  
正确的启动命令是:
/etc/rc.d/init.d/mysql start


缘由2-配置文件错误:
检查etc下面的my.cnf以下内容:
[client]
#password   = your_password
port     = 3306
socket     = /usr/mysql-data/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port     = 3306
socket     = /usr/mysql-data/mysql.sock


缘由3-启动文件错误:
须要修改MySQL启动脚本/etc/rc.d/init.d/mysql,
其中datadir=   ?     一行检查下!

缘由4-前提是你在使用php链接时候报错!
在/etc/php.ini修改mysql.default_socket的值设置为:
mysql.default_socket=/var/lib/mysql/mysql.sock
回到终点设置个链接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
(在/etc/php.ini中mysql.default_socket这个文件中,关于mysql.default_socket的值的说明是这样的,
;Default socket name for local MySQL connects. If empty, uses the built-in MySQL defaults.
这个值一开始是空的,也就是说,若是咱们不主动去修改的话,php将会使用内建在mysql中的默认值)
 
另外一篇文章:
Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' 问题的解决

这种问题须要强行从新修改密码,方法以下:

/etc/init.d/mysqld stop   (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH链接
[root@localhost ~]# mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit

pkill -KILL -t pts/0 可将pts为0的**用户(以前运行mysqld_safe的用户窗口)强制踢出
正常启动 MySQL:/etc/init.d/mysqld start   (service mysqld start)

注意:另外还遇到须要service mysql star才能启动service mysql stop才能中止。
还有直接使用mysql不能找到命令,错误为“bash: mysql: command not found”能够直接**mysql的安装目录中的bin文件夹跟绝对路径运行命令,还有的须要加./mysql 才能执行。
 
......
总之,其实不少问题乍一看,被蒙住了,可是只要静下心看一下,耐心去解决,其实不少问题并非问题。
相关文章
相关标签/搜索