Maison  >  Article  >  base de données  >  Un article résume les applications de base de données Mysql et les problèmes courants

Un article résume les applications de base de données Mysql et les problèmes courants

藏色散人
藏色散人avant
2022-01-07 15:14:262574parcourir

1. Installez mysql

1, système CentOS

1.) Installez mysql

Téléchargez et installez la source du dépôt de mysql
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
Installez mysql
$ sudo yum install -y mysql-server

2. ) Démarrez/redémarrez/arrêtez le service

service mysqld start | restart | stop

2. Système alpin

L'installation de MySQL dans le système alpin est en fait open source MariaDB. La base de données MariaDB est une branche/un dérivé de MySQL, entièrement compatible avec MySQL, et a été étendue. fonctions, moteurs de stockage et Certaines nouvelles améliorations fonctionnelles sont meilleures que MySQL. Référence d'installation
$ apk update

# 安装数据库及客户端
$ apk add mysql mysql-client

# 初始化数据库
$ mysql_install_db --user=mysql --datadir=/var/lib/mysql

# 启动服务
$ rc-service mariadb start  # 若没有rc,安装:apk add openrc

# 修改密码
$ mysqladmin -u root password '新root密码'

# 加入开机启动
$ rc-update add mariadb default

2. Opération mysql

1 Connectez-vous à la base de données

Initialisation par défaut et connectez-vous directement
$ mysql
Si l'invite échoue, cela signifie. il y a un mot de passe, exécutez :
$ mysql -uroot -p

# 一次性登录
$ mysql -u用户 -p密码

2. Base de données d'opération

# 查看所有数据库
mysql> show databases;

# 创建数据库
mysql> create database xxx charset=utf8;

# 删除数据库
mysql> drop database xxx;

# 切换数据库
mysql> use mysql;

# 查看表
mysql> show tables;

# 创建表
mysql> create table xxx (
    id int,
    name varchar(20),
    update_time datetime
);

# 删除表
mysql> drop table xxx;

# 显示表结构
mysql> desc xxx;

# 查询指定a,b字段的记录,不知道用*代替
mysql> select a,b form xxx;

# 插入记录
mysql> insert into xxx(id,user) values(1,'wang',now());

# 删除记录
mysql> delete from xxx where name='wang';

# 清屏命令
mysql> system clear;

# 退出
mysql> quit;

3. Gestion des utilisateurs

La table utilisateur de MySQL est utilisée pour stocker toutes les autorisations utilisateur. Le champ hôte indique que l'utilisateur IP spécifié peut l'utiliser. les utilisateurs avec le même nom et des hôtes différents. Les valeurs d'hôte communes sont les suivantes :

localhost : ne peut être utilisé que côté serveur
192.168.4.% : le segment IP spécifié peut être utilisé
% : caractère générique. , indiquant que tous les utilisateurs IP peuvent l'utiliser, principalement utilisé pour les connexions à distance

Lors de la création/suppression d'utilisateurs ci-dessous, vous pouvez utiliser l'utilisateur@'hôte' spécifié, s'il n'est pas spécifié, la valeur par défaut est %

# 切换到mysql权限数据库
mysql> use mysql;

# 查看用户及所属的host
mysql> select user,host from user;

# 新建用户并设置密码
mysql> create user '用户名' identified by '密码';

# 上面不指定host,默认%,等同于:
mysql> create user '用户名'@'%' identified by '密码';

# 删除用户(只删除host为%的用户)
mysql> drop user '用户名';

# 查看用户权限
mysql> show grants for '用户名';

# 设置权限,并指定数据库
mysql> grant all privileges on xxxDB.* to '用户名';

# 修改密码,注意密码处不能直接password='新密码'
mysql> update user set password=password('新密码') where user='用户名';

# 刷新权限表
mysql> flush privileges;

4.

1.) Exécution par lots de script SQL

$ mysql -uroot -p -Dxxx < ./init.sql    # xxx为数据库

2.) Sauvegarde/restauration de la base de données

$ mysqldump --all-databases -h127.0.0.1 -u root -p > ./backup/mysql-bak.sql
$ mysqldump --all-databases -h127.0.0.1 -u root -p < ./backup/mysql-bak.sql

3 Foire aux questions

1, Comment effacer le mot de passe root si vous l'oubliez ?

$ mysql –skip-grant-table &
  mysql> use mysql;
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;
Ce qu'il faut noter ici, c'est que chaque commande doit se terminer par un point-virgule ";". Après avoir effectué les opérations ci-dessus, le mot de passe root sera effacé.
2. Erreur d'utilisateur vide

ERREUR 1044 (42000) : Accès refusé pour l'utilisateur ''@'localhost' à la base de données 'mysql' Erreur :

Cause :

Il y a un nom d'utilisateur dans la table utilisateur de la base de données mysql Un compte vide est un compte anonyme Bien que vous utilisiez root lors de la connexion, vous vous connectez en réalité de manière anonyme.

Solution :

# 1.关闭mysql
$ service mysqld stop

# 2.屏蔽权限
$ mysqld_safe --skip-grant-table # 屏幕出现: Starting demo from .....

# 3.新开起一个终端输入
$ mysql -uroot mysql
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;
3. Root peut être utilisé sur le service, mais la connexion à distance ne peut pas être effectuée

$ mysql -uroot -p
  mysql> use mysql;
  
  # 先查看user表host字段,有无通配符'%',若有直接运行flush privileges;
  mysql> select host from user where user='root';  
  mysql> grant all privileges *.* to 'root'@'%' identified by 'root密码';
  mysql> flush privileges;
  mysql> quit;

4 La connexion à distance provoque une erreur caching_sha2_password

À partir de la version mysql5.7, la méthode de vérification caching_sha2_password est adoptée. par défaut
mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root密码';
5 , mysql modifie le stockage des données par défaut

$ mysqladmin -u root -p variables | grep datadir  # 查看mysql数据库存放目录
$ service mysqld stop
$ mv /var/lib/mysql /路径  # 移动数据库文件

$ vi /etc/my.cnf

# 修改datadir和socket两个字段,并添加以下:
[mysql] 
socket=/路径/mysql.sock

$ service mysqld start

Apprentissage recommandé : "

tutoriel vidéo mysql"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer