过了一个国庆,同事反映说seafile服务挂掉了,无法正常连接。
刚才解决了一下,把相关问题简要记录一下:
1.首先连接阿里云,获得相关IP地址(如果已知IP地址,则不需要该步骤)
2.通过xshell或者其他ssh工具连接上去(此类工具很多,比如putty、secureCRT、MobaXterm Personal Edition等)
3.首次查看seafile进程是否正常: ps -ef | grep seafile ;
4.尝试启动seafile服务,并监控和检查相关log,看是否正常:
报错信息如下:
$ ./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"
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
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
查了一下,发现这种问题需要强行重新修改密码,方法如下:
/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,发现基本正常了。
(7)其他补充信息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
关于该问题,在解决过程中,看到网上的朋友说有多种解决办法:
Red Hat Enterprise Linux 5服务器上mysql启动报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
原因1-启动命令错误:
我开始的时候直接输入命令:mysql start
正确的启动命令是:
原因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
#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 才能执行。
这种问题需要强行重新修改密码,方法如下:
/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 才能执行。
......
总之,其实很多问题乍一看,被蒙住了,但是只要静下心看一下,耐心去解决,其实很多问题并不是问题。
本文转自 念槐聚 博客园博客,原文链接:http://www.cnblogs.com/haochuang/p/4867356.html,如需转载请自行联系原作者