最近发现站点经常无法打开,以往都是直接重启服务器,偷懒省事。后来无意间在控制台登录,发现原来是 mysql 的内存占用过大,导致 out of memory,被系统杀掉了进程。
按道理来说,一个小破站,真的需要那么大的内存占用么,而且这么多年来大部分时间都没有问题,也不清楚具体是从什么时候开始有这个问题了。
按照网上的教程,结合服务器上的配置。
cd /etc/mysql/mysql.conf.d
修改 mysqld.cnf 这个文件,添加或者更新一条配置
innodb_buffer_pool_size = 100M
大家结合自己的实际情况来修改吧,这个默认值看起来是 128M。
网上还有更新下面的配置,我没有设置,先跑跑看。
# 设置最大连接数
max_connections = 100
# 设置线程缓存大小
thread_cache_size = 16M
# 设置每个连接最大的查询缓存大小
query_cache_size = 64M
不要忘记 sudo service mysql restart
虽然衣服自己洗不知道为什么,但是运行下面后的命令:
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
再安装mysql就不会有错误提示了。
sudo apt-get dist-upgrade
linux命令未免也太神奇了一点吧。
在虚拟机里安装了Ubuntu系统,在使用mysql 的时候,发现连接不上去。报错 Can’t connect to local MySQL server through socket ‘var/run/mysqld/mysqld.sock’。
按照网上别人的说法,是由于不同版本的linux系统,在安装mysql的时候呢,做了不同的配置,有说可以修改 my.cnf 文件里的路径。但是在虚拟机系统里根本就没有发现这个文件。经过测试发现下面的命令是可以的,看起来应该是做了一个软连接的方式喔。
sudo ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock
很不喜欢不同版本的系统,配置会在不同地方的行为。这点貌似windows做的更好一点。
由于工作需要,在内网里假设论坛,本来是打算使用windows系统的,可是下载数据库,很久都没有下载回来,只好放弃而改用linux服务器。
服务器居然是Redhat 的系统,一路各种安装,但是在安装mysql时出错了。
安装mysql后,使用命令登录mysql居然报错了,Mysql ERROR 1045 (28000): Access denied for user ‘root’@’localhost'(using password: NO),这个错误搞得很郁闷,可能是密码在配置mysql的时候异常,所以导致我们没有正确的密码,知道问题后,立即想到解决办法了,那就是重新设置一个密码,方法如下
1.先关闭mysql并设置密码
1.#sudo /etc/init.d/mysql stop
2.#sudo mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
3.#sudo mysql -u root mysql
4.mysql> UPDATE user SET Password=PASSWORD(‘pas’) where USER=’root’;
5.mysql> FLUSH PRIVILEGES;
6.mysql> quit
2.重启mysql并尝试登录
1.#sudo /etc/init.d/mysql restart
2.#sudo mysql -u root -p
3.Enter password:
4.#输入密码,出现下面这个就表示登录正常了
5.mysql>
Mysql ERROR 1045 (28000): Access denied for user ‘root’@’localhost'(using password: NO)这个错误在使用phpmyadmin登录的时候只提示(28000),同时phpmyadmin也会提示密码出错,按以上方法设置之后就可以用新密码登录phpmyadmin了。
登陆成功,剩下的就是拷贝文件,然后进行论坛的初始化操作了,这里就不提了。