Étiquette : mysql

5 mai 2016 /

Si vous tombez sur cette erreur:

mysql> create database nom_utilisateur;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

Pour la résoudre, il suffit de définir un password à l’utilisateur (ici root) qui sert d’opérateur :

mysql

set password for root@'localhost' = PASSWORD('nouveau_passwd');

 

2 mai 2016 /

Voici un petit mémo qui montre comment changer le répertoire de données MySQL par défaut, puis à régler SELinux pour qu’il tienne compte des changements.

Arrêt du serveur MySQL:

service mysqld stop

Création d’un nouveau répertoire de données:

mkdir /nouveau/repertoire/mysql
chown mysql:mysql /nouveau/repertoire/mysql

Déplacer la base de données d’origine:

mv /var/lib/mysql/* /nouveau/repertoire/mysql

Modification du fichier de configuration MySQL:

vi /etc/mysql/my.cnf

Et on y change cette ligne:

datadir = /var/lib/mysql

devient:

datadir = /nouveau/repertoire/mysql

ainsi que celle la:

socket = /var/lib/mysql/mysql.sock

qui devient:

socket = /nouveau/repertoire/mysql/mysql.sock

Mappage du contexte SELinux pour le répertoire /nouveau/repertoire/mysql/ , avec la commande semanage:

semanage fcontext -a -t mysqld_db_t "/nouveau/repertoire/mysql(/.*)?"

Application du contexte pour une prise en compte par le système à chaud:

restorecon -Rv /nouveau/repertoire/mysql/

Démarrage du serveur MySQL:

service mysqld start

Vérification de l’accès et de la connectivité:

mysql -u root -p

mysql> show databases;

Si cela fonctionne, vous avez changé le répertoire par défaut de MySQL avec une prise en compte par SELinux avec succès.

Par contre si vous obtenez un message de ce genre:

ERROR 2002 (HY000): Impossible de se connecter au serveur MySQL local par socket '/var/lib/mysql/mysql.sock'

Il faudra ajouter cela à votre fichier /etc/my.cnf :

[client]
socket = /srv/mysql/mysql.sock

Et dernière chose, pour éviter la connexion via le socket:

mysql -u root -p --protocol tcp

16 mars 2016 /

Pour autoriser le serveur 192.168.0.21 à ce connecter sur le serveur Mysql, on se connecte dessus:

mysql -u root -p

Puis dans l’invite Mysql  (mysql>):

GRANT ALL PRIVILEGES ON *.* TO root@'192.168.0.21' WITH GRANT OPTION;

16 mars 2016 /

Après avoir fraichement installé Mysql, je me suis retrouvé face à cette erreur:

create database luxiduser;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

Pour solutionner cette erreur, c’est très simple. Il suffit de définir le mot de passe mysql pour root.
On commence par se connecter sur Mysql ( en root):

mysql

Puis dans l’invite de commande Mysql, on va le définir (mysql>):

set password for root@'localhost' = PASSWORD('mot_de_passe');

16 mars 2016 /

Petit mémo pour intégrer un fichier .sql dans une base de données mysql.

On commence par ce connecter sur la base mysql:

mysql -u root -p

Puis dans l’invite de commande mysql (mysql>):

source /chemin/fichier.sql

ou alors la même chose sur une seule ligne:

mysql < /chemin/fichier.sql -u root-p