Hulp gezocht website down; server MySQL error
Aad B op 07/11/2017 15:22:57:
Doe eens een ls -altr /var/run/mysqld/mysqld.pid om te kijken wat de rechten zijn van de file.
Je mag de pid file gewoon weggooien want MySQL maakt steeds een nieuwe aan tijdens starten van de deamon.
het lijkt me geen bug, dan zou je wel iets gevonden hebben daarover.
Verder is er ook nog een mysqld.sock of zoiets, ook die mag weg en wordt aangemaakt bij starten MySQL
Nadat je ze weggegooid check je ook nog even of er MySQL processen draaien: ps -ef |grep mysql
Deze processen kill je met -9 waarna vervolgens MySQL gestart kan worden. Doe geen restart maar gewoon een start. Check eventuele foutmeldingen kom daarmee hier terug
Je mag de pid file gewoon weggooien want MySQL maakt steeds een nieuwe aan tijdens starten van de deamon.
het lijkt me geen bug, dan zou je wel iets gevonden hebben daarover.
Verder is er ook nog een mysqld.sock of zoiets, ook die mag weg en wordt aangemaakt bij starten MySQL
Nadat je ze weggegooid check je ook nog even of er MySQL processen draaien: ps -ef |grep mysql
Deze processen kill je met -9 waarna vervolgens MySQL gestart kan worden. Doe geen restart maar gewoon een start. Check eventuele foutmeldingen kom daarmee hier terug
@Aad A
> ls -altr /var/run/mysqld/mysqld.pid
ls: cannot access /var/run/mysqld/mysqld.pid: No such file or directory
Ik heb die directory niet
en die file mysqld.pid komt nergens voor op mijn server.
> ps -ef |grep mysql
Als ik dat commando vaker uitvoer; krijg ik telkens een andere PID.
> ps -ef |grep mysql
root 31982 22687 0 19:08 pts/0 00:00:00 grep mysql
> ps -ef |grep mysql
root 31984 22687 0 19:08 pts/0 00:00:00 grep mysql
> ps -ef |grep mysql
root 32247 22687 0 19:09 pts/0 00:00:00 grep mysql
> kill -9 31982,31984,32247
bash: kill: 31982,31984,32247: arguments must be process or job IDs
Toevoeging op 07/11/2017 20:05:05:
- Ariën - op 07/11/2017 07:34:16:
In my.cfg zal waarschijnlijk een verwijzing staan naar een niet bestaande pidfile.
* ik heb geen my.cfg gile
* ik heb geen mysql.cfg file
* ik heb wel een my.cnf file
/usr/local/directadmin/conf/
my.cnf ; dit bevat DA-username en DA-password
mysql.conf ; dit bevat DA-username en DA-password
Je vond namelijk alleen je eigen command met ps - ef
In een bestand my.cnf staan de verwijzingen naar de dir voor de pid en de socks file: Zie het voorbeeld hieronder:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
In jouw geval is er kennelijk een directe link met DA en misschien moet MySQL deamon door DA opgestart worden omdat daar de file bekend is?
Hier houdt mijn kennis op, ik gebruik gelukkig geen tooling zoals DA, Plesk, PHPAdmin etc omdat dat doorgaans meer ellende op je systeem creeert dan gemak.
Zoek of je met "DA service manager" MySQL kan starten ipv service mysql start, want handmatig opstarten zal MySQL op zoek gaan naar de my.cnf in de /etc structuur niet in /usr/local/directadmin/conf/
Gewijzigd op 07/11/2017 20:22:13 door Aad B
Als je er echt niet uitkomt, ga niet verder prutsen, maar vraag je hosting. Eventueel kan je nog via een ticket bij DirectAdmin.com nog om hulp vragen.
ln -s /usr/local/directadmin/conf/my.cnf /etc/mysql/my.cnf
Voor DA verstoort dit niks maar je kan dan proberen om MySQL handmatig te starten
Aad B op 07/11/2017 20:18:51:
In een bestand my.cnf staan de verwijzingen naar de dir voor de pid en de socks file: Zie het voorbeeld hieronder:
Mijn file /usr/local/directadmin/conf/my.cnf ziet er heel anders uit:
[client]
user=da-admin
password=**********
De file is dus slechts 3 regels lang.
Dan is de vraag:
- is dit een probleem ?
- zo ja, Wat/wie moet deze file correct aanmaken ?
- Begrijp ik nu dat ik wellicht eerder een DirectAdmin probleem heb
(wat vervolgens mijn MySQL belemmert) ?
Zie ook: https://help.directadmin.com/item.php?id=329
Gewijzigd op 08/11/2017 08:42:22 door - Ariën -
(op mijn servers is dat overigens /etc/mysql/my.cnf maar dat mag niet van DA)
Your my.cnf for the system will be at:
/etc/my.cnf
DirectAdmin does create a secondary my.cnf, but it's only used for the mysqldump calls. It's found at:
/usr/local/directadmin/conf/my.cnf
Conclusie: de ene is echt voor MySSQL deamon en de ander is gewoon voor DA om iets met MySQL te doen zoals backuppen en dergelijk: mysqldump calls. Dat impliceert dat 'service start mysql' ook gewoon zou moeten werken als er een my.cnf in /etc staat
Voorlopig dus my.cnf van een backup halen naar /etc zetten en MySQL starten! en meteen backup maken. Ga niet zelf een my.cnf in elkaar prutsen met mijn voorbeeld want dat kan desastreus zijn voor je wellicht nog aanwezige data.
Gewijzigd op 08/11/2017 12:00:42 door Aad B
Dank voor je reactie.
Ga ik mee aan de slag
maar moet even wachten want er loopt ook een hosting service-call.
Wordt vervolgd.
oplossing
> rm - rf ibdata1
> mysqld start
En daarmee draaide mysql weer.
Maar mn database was toch beschadigd, dus n restore van laatste database backup was nog nodig.
Bedankt voor de terugkoppeling. Hopelijk was je laatste backup voldoende recent....