Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/08/2014, à 23:49

TEXMAN

[RESOLU] Déplacer les bases Mysql

Bonjour,
Comme beaucoup j'ai voulu dépalcer les bases Mysql en suivant le tuto ici:
mysql install
voila mes config :
-1- l'endroit du mv:

texier@texier-Satellite-L40:/media/texier/_home/mysql$ ls -la
total 110736
drwxrwxrwx 4 mysql mysql     4096 août  26 23:12 .
drwxr-xr-x 5 root  root      4096 août  26 22:00 ..
-rw-rw---- 1 mysql mysql       56 août  26 22:52 auto.cnf
-rwxrwxrwx 1 root  root         0 août  26 20:46 debian-5.6.flag
-rwxrwxrwx 1 mysql mysql 12582912 août  26 23:12 ibdata1
-rwxrwxrwx 1 mysql mysql 50331648 août  26 23:12 ib_logfile0
-rwxrwxrwx 1 mysql mysql 50331648 août  26 20:46 ib_logfile1
drwxrwxrwx 2 mysql root      4096 août  26 20:47 mysql
-rwxrwxrwx 1 root  root         6 août  26 20:47 mysql_upgrade_info
drwxrwxrwx 2 mysql mysql     4096 août  26 20:47 performance_schema

-2- le lien symbolique

lrwxrwxrwx  1 root          root            25 août  26 22:06 mysql -> /media/texier/_home/mysql

-3- la config du /etc/apparmor.d/usr.sbin.mysqld

/media/texier/_home/mysql/ r,
  /media/texier/_home/mysql/** rwk,

une vérif:

ls -al /var/lib/mysql*
lrwxrwxrwx 1 root root   25 août  26 22:06 /var/lib/mysql -> /media/texier/_home/mysql

/var/lib/mysql-upgrade:
total 8
drwxr-xr-x  2 root root 4096 août  26 19:00 .
drwxr-xr-x 71 root root 4096 août  26 22:06 ..
lrwxrwxrwx  1 root root   26 août  26 19:00 DATADIR.link -> /media/texier/_home/mysql/

je suis sec j'ai recommencé deux fois bien sur avant de dépalcer les bases j'ai vérifié que ça marche nickel.
merci pour des lumières

Dernière modification par TEXMAN (Le 27/08/2014, à 23:25)

Hors ligne

#2 Le 27/08/2014, à 00:51

pires57

Re : [RESOLU] Déplacer les bases Mysql

Heu en clair cest quoi le problème?  Perso je ne vois pas ce que tu cherche a faire la


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#3 Le 27/08/2014, à 07:27

tiramiseb

Re : [RESOLU] Déplacer les bases Mysql

Salut,

Je vois ce que tu cherches à faire (déplacer les bases de MySQL) mais je ne vois pas non plus le problème : tu ne montres que les emplacements de tes fichiers, tu ne montres aucune erreur, aucun lancement de MySQL, rien...

Hors ligne

#4 Le 27/08/2014, à 11:21

TEXMAN

Re : [RESOLU] Déplacer les bases Mysql

OK effectivement:
voila:

mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

et au lancement:

sudo service mysql start
start: Job failed to start

Hors ligne

#5 Le 27/08/2014, à 11:30

tiramiseb

Re : [RESOLU] Déplacer les bases Mysql

TEXMAN a écrit :

OK effectivement:
voila:

mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Baaah... N'essaie même pas de t'y connecter s'il n'est même pas lancé ! smile

TEXMAN a écrit :

et au lancement:

sudo service mysql start
start: Job failed to start

Et il y a quoi dans les logs ?

Hors ligne

#6 Le 27/08/2014, à 12:11

TEXMAN

Re : [RESOLU] Déplacer les bases Mysql

voila:

2014-08-27 11:20:19 3122 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'plugin' is read only
2014-08-27 11:20:19 3122 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
2014-08-27 11:20:19 3122 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-08-27 11:20:19 3122 [Note] InnoDB: The InnoDB memory heap is disabled
2014-08-27 11:20:19 3122 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-08-27 11:20:19 3122 [Note] InnoDB: Compressed tables use zlib 1.2.8
2014-08-27 11:20:19 3122 [Note] InnoDB: Using Linux native AIO
2014-08-27 11:20:19 3122 [Note] InnoDB: Not using CPU crc32 instructions
2014-08-27 11:20:19 3122 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-08-27 11:20:19 3122 [Note] InnoDB: Completed initialization of buffer pool
2014-08-27 11:20:19 3122 [Note] InnoDB: Highest supported file format is Barracuda.
2014-08-27 11:20:19 3122 [Note] InnoDB: Log scan progressed past the checkpoint lsn 1626503
2014-08-27 11:20:19 3122 [Note] InnoDB: Database was not shutdown normally!
2014-08-27 11:20:19 3122 [Note] InnoDB: Starting crash recovery.
2014-08-27 11:20:19 3122 [Note] InnoDB: Reading tablespace information from the .ibd files...
2014-08-27 11:20:19 3122 [Note] InnoDB: Restoring possible half-written data pages 
2014-08-27 11:20:19 3122 [Note] InnoDB: from the doublewrite buffer...
InnoDB: Doing recovery: scanned up to log sequence number 1626553
2014-08-27 11:20:19 3122 [Note] InnoDB: 128 rollback segment(s) are active.
2014-08-27 11:20:19 3122 [Note] InnoDB: Waiting for purge to start
2014-08-27 11:20:20 3122 [Note] InnoDB: 5.6.19 started; log sequence number 1626553
2014-08-27 11:20:20 3122 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
2014-08-27 11:20:20 3122 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
2014-08-27 11:20:20 3122 [Note] Server socket created on IP: '127.0.0.1'.
2014-08-27 11:20:20 3122 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'user' is read only

mais je sais pas comment on met les bons privilèges sur la table 'user' sans avoir accès à Mysql???

Hors ligne

#7 Le 27/08/2014, à 12:29

bruno

Re : [RESOLU] Déplacer les bases Mysql

Bon, déjà je ne suis pas vraiment fan de la méthode proposée dans la doc que tu cites…

Ensuite je ne suis pas sûr que tu l'aies suivie correctement car les droits sur tes fichiers ne sont pas corrects : beaucoup trop de permission et mauvais propriétaire.

/var/lib/mysql et ce qu'il contient doit appartenir à 'mysql' et n(être accessible qu'à son propriétaire, donc :

sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R go-rx /var/lib/mysql

Même chose pour le dossier où tu as déplacé tes bases :

sudo chown -R mysql:mysql /media/texier/_home/mysql
sudo chmod -R go-rx /media/texier/_home/mysql

À vérifier ensuite par des commandes sudo ls, notament sur le dossier /media/texier/_home/mysql/mysql

Dernière modification par bruno (Le 27/08/2014, à 12:30)

Hors ligne

#8 Le 27/08/2014, à 12:39

TEXMAN

Re : [RESOLU] Déplacer les bases Mysql

Bon j'ai mis tout mis en 777...pas top pour la sécurité...Surtout mon erreur c'est qu'il faut aussi que les directories parentes soient en write autorisée.!!!
et  voila ce que me donne mon test avec PHP:

Congrats! connection established successfully

Merci de m'avoir mis le doigt sur ce qui n'allait pas...Mais je suis preneur d'un conseil pour mieux sécuriser le truc...Bien sur je peux faire par tâtonnement...Mais je suis preneur d'expérience.
Merci beaucoup

Hors ligne

#9 Le 27/08/2014, à 12:46

pires57

Re : [RESOLU] Déplacer les bases Mysql

mieux sécuriser le truc

Cela ne risque pas d'être compliquer, avec ce genre de droit t'es limite encore plus une passoire que windows lui même ....
donnes les retours des commandes ls -al que je vois ce que tu as fait comme connerie


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#10 Le 27/08/2014, à 13:08

bruno

Re : [RESOLU] Déplacer les bases Mysql

Je t'ai donné les commandes pour rétablir des droits d'accès corrects. Pourquoi ne les as-tu pas appliquées ?

Hors ligne

#11 Le 27/08/2014, à 13:16

tiramiseb

Re : [RESOLU] Déplacer les bases Mysql

OMG !

En effet, bruno t'a donné les commandes pour faire ça proprement. Malgré cela, tu as fait la chose la plus crado que tu pouvais faire pour rétablir la situation. Moi aussi, je me demande pourquoi...

Concernant le fait que bruno ait dit qu'il n'est pas fan de ta méthode, je ne peux que le rejoindre...

En particulier, pourquoi avoir fait un lien de /var/lib/mysql vers ton répertoire particulier ? Ce qui aurait été propre est de dire à MySQL de taper directement sur ton répertoire particulier, par le biais de la directive "datadir" du fichier /etc/mysql/my.cnf. Lui dire "va chercher /var/lib/mysql, ça te pointera ailleurs", c'est aberrant.

Par ailleurs, le répertoire que tu évoques, "/media/texier/_home/mysql", me fait peur :
- déjà, tu mets ça dans /media, répertoire réservé aux périphériques amovibles : il est amovible, ce disque qui contient ta base de données ?
- ensuite, tu mets ça dans ce qui ressemble à un « répertoire personnel », alors même qu'une base MySQL c'est plutôt de la donnée système.
- enfin, je t'aurais plutôt conseillé de monter une partition sous /srv, ce qui serait bien plus propre... ou alors monter une partition dans /var/lib/mysql, ce serait plutôt propre également...

Hors ligne

#12 Le 27/08/2014, à 13:56

bruno

Re : [RESOLU] Déplacer les bases Mysql

Pour compléter ce qui dit tiramiseb je vais expliquer pourquoi cette doc est moisie.

On te conseille de faire un lien symbolique  « afin de ne pas "casser" les fichiers de configuration originel de MySQL »
D'abord c'est stupide car les fichiers de configuration sont justement faits pour y personnaliser la configuration…
L'auteur de cette documentation craignait sans doute que le fichier my.cnf ne soit écrasé lors d'une mise à jour. Mais cela n'arrivera pas, car lors d'une mise à jour le gestionnaire de paquets demande ce qu'il doit faire : remplacer, conserver, afficher les différences…
Si l'on a vraiment cette crainte, on ne touche pas au fichier my.cnf et on utilise le dossier conf.d qui est prévu pour y placer ses propres configurations.
Ensuite c'est en contradiction avec la manipulation suivante qui te fait modifier directement /etc/apparmor.d/usr.sbin.mysqld. Là curieusement l'auteur de la documentation ne craint plus de « casser » le fichier de configuration originel :-D. La bonne manipulation aurait été de placer la configuration supplémentaire dans /etc/apparmor.d/local/usr.sbin.mysqld et de dé-commenter la ligne du premier fichier :

# Site-specific additions and overrides. See local/README for details.
  #include <local/usr.sbin.mysqld>

(C'est curieux comme personne ne prend la peine de lire les fichiers de configuration…)

Dernière modification par bruno (Le 27/08/2014, à 13:57)

Hors ligne

#13 Le 27/08/2014, à 14:14

pires57

Re : [RESOLU] Déplacer les bases Mysql

je rajouterais également une chose:
que ce soit la peur de perdre le fichier ou la peur de mal le configurer, il est conseillé de faire une copie du fichier à l'état initial.
C'est pas difficile de faire un

cp my.cfn my.cfn.bak

ainsi si il y a un problème, il suffira simplement de restaurer le backup du fichier de conf.

Concernant les docs, je pense que la personne à été piocher a droite a gauche des infos, c'est pourquoi on se retrouve avec une méthode contradictoire.
Il faudrait refaire les docs, la plupart sont ancienne, plus d'actualité par rapport aux évolutions ou de mauvaise qualité.


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#14 Le 27/08/2014, à 16:09

TEXMAN

Re : [RESOLU] Déplacer les bases Mysql

oups désolé Bruno j'avais pas vu ton message...j'ai fait ce que tu as dis!!
-1- En fonction de tout ce qui est dit et qui me semble bel et bon je pense qu'il faudrait mettre un gros warning dans la doc!
effectivement:
-2-

Pires57 a écrit :

que ce soit la peur de perdre le fichier ou la peur de mal le configurer, il est conseillé de faire une copie du fichier à l'état initial.
C'est pas difficile de faire un

cp my.cfn my.cfn.bak

Bravo je suis tombé dedans et ai été obligé de refaire l'install de Mysql ...bon j'en ai profité pour passer en 5.6
-3-

tiramiseb a écrit :

En particulier, pourquoi avoir fait un lien de /var/lib/mysql vers ton répertoire particulier ? Ce qui aurait été propre est de dire à MySQL de taper directement sur ton répertoire particulier, par le biais de la directive "datadir" du fichier /etc/mysql/my.cnf. Lui dire "va chercher /var/lib/mysql, ça te pointera ailleurs", c'est aberrant.

Oui quand on débute on a tendance à suivre un peu bétement

-4-

tiramiseb a écrit :

Par ailleurs, le répertoire que tu évoques, "/media/texier/_home/mysql", me fait peur :
- déjà, tu mets ça dans /media, répertoire réservé aux périphériques amovibles : il est amovible, ce disque qui contient ta base de données ?
- ensuite, tu mets ça dans ce qui ressemble à un « répertoire personnel », alors même qu'une base MySQL c'est plutôt de la donnée système.
- enfin, je t'aurais plutôt conseillé de monter une partition sous /srv, ce qui serait bien plus propre... ou alors monter une partition dans /var/lib/mysql, ce serait plutôt propre également...

là je pense que je suis pas au niveau...en fait voila comment est structuré mon disque dur:
en fait j'ai fait une partition : sda6 point de montage /media/texier/_home étiquette /home pour mettre tout ce qui n'est pas système et comme j'avais des pb de taille sous la racine ça me permettait de mettre tout ce qui n'est pas système et comme cela m'est arrivé dèja deux fois de pouvoir repartir de zéro sur la partition /

-5- je veux bien proposer une rédaction qui respecte ce que vous dites pour le déplacement des bases MySql mais comme je n'ai pas votre niveau il faudrait que vous validiez...Y a-t-il un espace pour faire cela?

Hors ligne

#15 Le 27/08/2014, à 16:28

tiramiseb

Re : [RESOLU] Déplacer les bases Mysql

Oui quand on débute on a tendance à suivre un peu bétement

Malheureusement, oui, maintenant les débutants préfèrent se fier à des tutoriels plutôt qu'à la documentation officielle des outils...
Il faut que ça marche tout de suite, y'a plus le temps de lire de la vraie doc !

en fait j'ai fait une partition : sda6 point de montage /media/texier/_home étiquette /home pour mettre tout ce qui n'est pas système et comme j'avais des pb de taille sous la racine ça me permettait de mettre tout ce qui n'est pas système et comme cela m'est arrivé dèja deux fois de pouvoir repartir de zéro sur la partition /

Le mieux est de faire ça en LVM et de mettre plusieurs volumes logiques de plus petite taille (qui pourront être agrandis plus tard), que tu monteras à tel ou tel endroit de ton système selon tes besoins.
Ou alors, si tu fais une seule partition, de la monter sur /srv plutôt que sur /media/texier/_home... Car ce que tu décris comme usage, ça semble être précisément le but de /srv...

Hors ligne

#16 Le 27/08/2014, à 16:55

TEXMAN

Re : [RESOLU] Déplacer les bases Mysql

tiramiseb a écrit :

Ou alors, si tu fais une seule partition, de la monter sur /srv plutôt que sur /media/texier/_home... Car ce que tu décris comme usage, ça semble être précisément le but de /srv...

ce que je vois ...dans la doc.ubuntu-fr.org c'est :

Ubuntu monte automatiquement les disques dans des sous-dossiers du répertoire /media par exemple, dossiers qu'il crée automatiquement avant.

si je monte ma partition sous /srv j'ai pas de risque de conflit?

Hors ligne

#17 Le 27/08/2014, à 17:06

bruno

Re : [RESOLU] Déplacer les bases Mysql

Ouh là on s'éloigne du sujet initial smile

Si tu a un souci de partitionnement/montage tu devrais ouvrir un autre fil de discussion.
Tu y indiqueras comment sont partitionnés tes disques :

sudo fdisk -l

et tes points de montage :

cat /etc/fstab

et

mount

Hors ligne

#18 Le 27/08/2014, à 17:22

tiramiseb

Re : [RESOLU] Déplacer les bases Mysql

si je monte ma partition sous /srv j'ai pas de risque de conflit?

Ben non, au contraire : tu montes celle-ci manuellement, du coup y'a pas de risque de conflit avec un truc automatique, /media étant prévu justement pour les trucs automatiques.

Si tu mets un truc manuel dans /media, en théorie, il peut y avoir un conflit, oui ; cela dit, en pratique il n'y a pas de conflit car il y a des "garde-fous".

Si tu a un souci de partitionnement/montage tu devrais ouvrir un autre fil de discussion.

Il n'a pas de souci, je lui ai juste conseillé un point de montage normalisé plutôt qu'un bricolage...

Hors ligne

#19 Le 27/08/2014, à 23:24

TEXMAN

Re : [RESOLU] Déplacer les bases Mysql

Ok merci pour tout. je mets le sujet en résolu...Quoique ...Je trouve dommage de pas faire une "bonne" doc sur le sujet du déplacement des tables Mysql.

Hors ligne

#20 Le 04/10/2016, à 22:52

Giordano Bruno

Re : [RESOLU] Déplacer les bases Mysql

Bonjour,

Comme ce post est en lien dans la doc sur mysql je viens apporter une petite précision.
sous ubuntu 16.04 dans le fichier /usr/share/mysql/mysql-systemd-start on peut voir :

if [ ! -d /var/lib/mysql ] && [ ! -L /var/lib/mysql ]; then
    echo "MySQL data dir not found at /var/lib/mysql. Please create one."
    exit 1
  fi

  if [ ! -d /var/lib/mysql/mysql ] && [ ! -L /var/lib/mysql/mysql ]; then
    echo "MySQL system database not found. Please run mysql_install_db tool."
    exit 1
  fi

donc si on déplace les fichiers de /var/lib/mysql vers un autre emplacement mysql ne démarra pas.

Hors ligne

#21 Le 28/01/2017, à 14:40

grigouille

Re : [RESOLU] Déplacer les bases Mysql

Bonjour,

J'ai mis à jour la page mysql.
https://doc.ubuntu-fr.org/mysql#deplace … nees_mysql.

J'espère que c'est bon.


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne