Maison > base de données > tutoriel mysql > le corps du texte

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

藏色散人
Libérer: 2022-01-24 10:54:34
avant
2542 Les gens l'ont consulté

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
Copier après la connexion
Installez mysql
$ sudo yum install -y mysql-server
Copier après la connexion

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

service mysqld start | restart | stop
Copier après la connexion

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
Copier après la connexion

2. Opération mysql

1 Connectez-vous à la base de données

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

# 一次性登录
$ mysql -u用户 -p密码
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

4.

1.) Exécution par lots de script SQL

$ mysql -uroot -p -Dxxx < ./init.sql    # xxx为数据库
Copier après la connexion

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
Copier après la connexion

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;
Copier après la connexion
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;
Copier après la connexion
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;
Copier après la connexion

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密码';
Copier après la connexion
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
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!