前提步骤:卸载wordpress干净,需要把相应的数据库删除:drop databade **;
(1)先改wordpress中重要文件的权限:777
(2)用usradd -d www /html命令添加www用户后,把该用户给wordpress:chown -R /html:www *
(3)就可以安装相应插件和上传主题(不用FTP)了
1.woocommerce插件的使用:
(1)设置->产品->显示->商店和产品页面->店铺页面:产品就可以显示在页面的主要部分了;
(2)要运行安装向导之后才可以显示:Home,cart,Checkout,Mycount的选项;
(3)上传主题时,文件比较大,需要更改:/etc/php.ini文件中,upload.fize的大小:20M
(4)经常出现出现数据库连接错误,出现“Error establishing a database connection ”,这段话意思是连接数据时出现错误:
**以前一直需要靠重启虚拟主机才能解决,现在寻求长期解决方案:
**发现不是httpd服务的问题,应该是mysql服务的问题,因为重启httpd服务后,错误依然存在,但是重启mysql服务后错误解决,所以判断是mysql在wordpress运行时,自己断开了,所以在网上寻找解决mysql时常自己断开的解决方案:
1、mysql端口被占用,
原因分析:1、以前安全的mysql没有卸载干净
2、其他程序占用了3306端口
将mysql配置文件把端口修改一下就可以了
3、mysql的连接数问题
修改mysql的最大连接数,使用内存变量修改法修改mysql的最大连接数
(1)使用内存变量修改法修改MySQL的最大连接数(转载)
步骤如下(同时适用Windows和Linux平台):
A、客户端登录MySQL,输入用户名和密码
B、在MYSQL命令提示符下设置新的最大连接数为500:mysql> set GLOBAL max_connections=500
C、显示当前运行的Query:mysql> show processlist
D、显示当前MYSQL 系统参数状态:mysql> show status
E、退出客户端:mysql> exit
查 看当前最大连接数只需要通过在mysqladmin所在目录下执行以下命令:mysqladmin -username -password variables |find "max_con" 即可看到。也可以使用PHPMyadmin里头的MYSQL参数列表查看最大连接数。
缺点:重启计算机或者MySQL后最大连接数又会复位成初始值,需要重新设定。
(2)其他方案:
打开my.ini文件找到set-variable =max_connections=100这一行,改成需要设定的最大连接数,然后重 启即可。
###Linux控制台下:
打开my.cnf文件:vi /etc/my.cnf
在[mysqld]段下修改max_connections的值为设定值。
在[mysqld]字段处,添加,或去掉注释
max_connections = 500 #增加mysql连接数
wait_timeout = 10 #断开超过10秒的连接
(3)其他原因和解决方案:
1、无法连接到Wordpress使用的数据库。
你的wp-config.php中的数据库用户名和密码错误,或者你的数据库所在服务器挂掉了!也有可能是服务商短时间内限制(访问量突然暴涨的博客或使用一些消耗数据库连接的WP插件)。
解决办法是,确认wp-config.php中的用户名和密码信息正确。确认WP使用的数据库服务器没有挂掉(可以ping或直接重启?!)。确认数据库连接方式,是远程连接还是本地连接,有些配置的远程连接的可能出现连不上数据库的情况,也就会出现这个“Error establishing a database connection”,使用的本地连接(localhost)。
2、若服务器数据库是刚刚升级到 mysql 5.0 以上,之前WP博客正常可访问。
这可能是由于mysql 5.0采用了一种新的密码验证机制,这需要客户端的版本要在4.0以上(PHP中的MYSQL客户端可以查看phpinfo得到),连接数据库时是用旧的密码机制,这会出现“Client does not support authentication protocol requested by server” 这样的错误提示,wordpress中就提示“Error establishing a database connection (可能密码错误)”。
解决办法:
方法1、在mysql中为wordpress数据库新建一个控制账户,然后修改wp-config.php中的数据库用户名和密码配置信息即可。方便简单!!
方法2、在mysql下:
mysql> SET PASSWORD FOR
-> ‘clin003’@’clin003.com’ = OLD_PASSWORD(‘newpwd’);
mysql> FLUSH PRIVILEGES;
这里的clin003替换成使用wordpress数据库的用户名,clin003.com替换成localhost或者某个域名,newpwd是该用户对应的密码。
还有一点是,查看phpinfo(),找MYSQL_SOCKET显示的mysql.sock的路径,确认mysql.sock的确在此路径下,否则需要做一个符号链接。比如phpinfo里显示MYSQL_SOCKET路径为/var/lib/mysql/mysql.sock,但实际上位于 /tmp/mysql.sock,可在命令行输入:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
3、mysql服务设置不当,导致mysql连接数量超过限定值,或者应用程序设计有问题,导致大量休眠连接不能及时释放。
解决办法:
登陆mysql服务器
mysql -u root -p
使用命令
show processlist;
查看当前连接数量。
如果进程过多,或存在大量超时的休眠sleep连接,编辑/etc/mysql/my.cnf
vim /etc/mysql/my.cnf
在[mysqld]字段处,添加,或去掉注释
max_connections = 500 #增加mysql连接数
wait_timeout = 10 #断开超过10秒的连接
4、是wp_options数据库表错误,我把整个数据库表修复和优化了一次
wp_options中的表前缀wp根据自己实际情况查看!
WORDPRESS出现错误时,可以通过 DEBUG 参数调试:
************根据Wp-config.php的调试功能排错************
1、在 wp-config.php 有个 debug 的参数,打开这个参数,修改为:
define(‘WP_DEBUG’, ‘true’);
2、根据报错提示解决问题,比如以下错误:
WordPress database error: [Table ‘./clin003_com/wp_options’ is marked as crashed and should be repaired]
SELECT autoload FROM wp_options WHERE option_name = ‘_transient_doing_cron’WordPress database error: [Table ‘./clin003_com/wp_options’ is marked as crashed and should be repaired]
SELECT autoload FROM wp_options WHERE option_name = ‘_transient_timeout_doing_cron’WordPress database error: [Table ‘./clin003_com/wp_options’ is marked as crashed and should be repaired]
SELECT option_value FROM wp_options WHERE option_name = ‘_transient_doing_cron’ LIMIT 1
wp_options 表坏了,需要被修复,使用 mysql 客户端。
进 mysql 使用修复的命令修复:
mysql>repair table wp_options;
也可以通过phpMyAdmin来进行修复。
3、问题解决,关掉 DEBUG。
根据mysql的日志记录排错
在mysql的log日志文件
mysql/data/
里面找到一个.err结尾的文件,打开。看见了一排
‘.clin003_comwp_options’ is marked as crashed and should be repaired
‘.clin003_comwp_options’ is marked as crashed and should be repaired
‘.clin003_comwp_options’ is marked as crashed and should be repaired
修复办法参考上面!
wordpress的错误手册2016/12/14:
警告:mysql_connect()函数:页眉和客户端库次版本不匹配。头:50547图书馆:50634在/var/www/html/wordpress/wp-includes/wp-db.php上线1559
解决办法:
***********************老是出现那个数据库问题,好像是Apache负载问题,我还是换Nginx服务器吧**********************
1.安装:yum install nginx
2.启动:cd /usr/sbin/
./nginx
3.启动成功:
4.下载安装php-fpm: yum install php-fpm
5.启动php-fpm:cd /usr/sbin/
./php-fpm
6.配置php-fpm和Nginx:
***********************可能的解决方案,生效************************
原因:当前数据库用户没有操作zuker数据库的全部权限
应该赋予其全部权限:
看来问题并没有解决:在一次出现数据库连接错误的问题:
1.当出现这个问题后,远程用mysql -u root -p 密码,无法登陆数据库
显示错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2.可以排除是wp.config的错误了;现在应该专注于mysql服务器的错误上: