Otto Moerbeek wrote:
On Fri, 13 Jul 2007, Marcos Laufer wrote:
I did read the archives, and it helped me to find out that
restarting mysql fixes it for some time, and i increased the values
several times but no luck. It starts working fine
for a while but then again it fails . In the end i have
this config right now and the problem persists, i can
reproduce the problem just by executing
mysqlcheck -m -A -p
How are yo starting mysql? You need to explicitly set the login class.
Somthing like
su -c mysql root /usr/local/bin/mysqld_safe ...
-Otto
Otto is right. Here is my /etc/postgresql.rc script, which should give
you some ideas for managing mysql (notice ``SU'').
#!/bin/sh
exec >&2
DATA=/var/postgresql/data
LOG=/var/postgresql/log
CMD=$1
PUSR=_postgresql
PCLS=postgresql
CTL=/usr/local/bin/pg_ctl
SU="su -l -c $PCLS $PUSR -c"
userinfo -e $PUSR || { echo "$PUSR user nonexistent."; exit 1; }
grep -q "^${PCLS}:" /etc/login.conf || { echo "$PCLS class
nonexistent."; exit 1; }
[ -x $CTL ] || { echo "$CTL not executable."; exit 1; }
case $CMD in
stop|reload|status)
$SU "exec $CTL $CMD -D $DATA"
;;
start|restart)
$SU "exec $CTL $CMD -D $DATA -l $LOG"
chmod 644 $LOG
;;
*)
echo "usage: $0 stop|restart|reload|status|start (will run as
$PUSR)"
;;
esac
And the relevant sections of /etc/login.conf
daemon:\
:ignorenologin:\
:datasize=infinity:\
:maxproc=infinity:\
:openfiles-cur=128:\
:stacksize-cur=8M:\
:localcipher=blowfish,8:\
:tc=default:
postgresql:\
:openfiles-cur=768:\
:tc=daemon:
-pachl
--
# sysctl kern.maxfiles
kern.maxfiles=20000
--
in login.conf:
_mysql:\
:openfiles=8192:\
:datasize=infinity:\
:maxproc=infinity:\
:openfiles-cur=8192:\
:openfiles-max=10000:\
:stacksize-cur=8M:
in my.cnf:
[mysqld]
socket = /var/www/logs/mysql/mysql.sock
old-passwords
tmpdir = /var/mysql/tmp
open-files-limit = 10000
sql-mode = MYSQL40
skip-name-resolve
table_cache = 1024
query_cache_size = 64M
key_buffer = 64M
long_query_time = 5
#log-slow-queries
#log-queries-not-using-indexes
thread_concurrency = 2
#query_cache_limit = 1M
interactive_timeout=60
wait_timeout=60
connect_timeout=15
basedir=/usr/local
datadir=/var/mysql
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
[mysql.server]
old-passwords
[mysqld_safe]
open-files=8192
----
Maybe i need to increase something else?
Thanks!
----- Original Message -----
From: "Otto Moerbeek" <[EMAIL PROTECTED]>
To: "Marcos Laufer" <[EMAIL PROTECTED]>
Cc: <misc@openbsd.org>
Sent: Friday, July 13, 2007 3:12 AM
Subject: Re: mysql problem
On Fri, 13 Jul 2007, Marcos Laufer wrote:
I am having a very strange problem on a 3.9 , suddenly i can't access any
table
on the databases. I have around 100 databases on this server and can't
access
not even one. This is a production server and i am in an urge to solve it,
if
anyone
can help i would appreciate it:
# mysql mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 303342 to server version: 5.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show tables;
ERROR 1018 (HY000): Can't read dir of './mysql/' (errno: 9)
mysql>
I have backups of all databases, including mysql database which i think is
the
one
broken , how can i restore it ?
Thanks for your help
You are running out of file descriptors. Search the archives for answers.
-Otto