Rumah  >  Artikel  >  pangkalan data  >  Satu artikel meringkaskan aplikasi pangkalan data Mysql dan masalah biasa

Satu artikel meringkaskan aplikasi pangkalan data Mysql dan masalah biasa

藏色散人
藏色散人ke hadapan
2022-01-07 15:14:262567semak imbas

1. Pasang mysql

1.) Pasang mysql

Muat turun dan pasang sumber repo mysql

Pasang mysql
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
2.) Mulakan/mulakan semula/tutup perkhidmatan
$ sudo yum install -y mysql-server

2. Sistem Alpine

service mysqld start | restart | stop
Mysql yang dipasang dalam sistem alpine sebenarnya adalah sumber terbuka MariaDB Pangkalan data MariaDB ialah cawangan/derivatif MySQL, serasi sepenuhnya dengan MySQL, dan mempunyai fungsi lanjutan, enjin storan dan Beberapa penambahbaikan fungsi baharu adalah lebih baik daripada rujukan Pemasangan MySQL

2. Operasi mysql
$ 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
Log masuk ke pangkalan data

Inisialisasi lalai dan log masuk terus

Jika gesaan gagal, ini bermakna terdapat kata laluan, jalankan:
$ mysql
2 >3. Pengurusan pengguna
$ mysql -uroot -p

# 一次性登录
$ mysql -u用户 -p密码
pengguna mysql Jadual digunakan untuk menyimpan semua kebenaran pengguna Medan hos menunjukkan bahawa pengguna IP yang ditentukan boleh menggunakannya values ​​​​​​adalah seperti berikut:

localhost: hanya boleh digunakan pada bahagian pelayan
# 查看所有数据库
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;
192.168 .4.%: Segmen IP yang ditentukan boleh digunakan

%: wildcard, menunjukkan bahawa semua pengguna IP boleh menggunakannya, kebanyakannya digunakan untuk sambungan jauh

Apabila membuat/memadam pengguna di bawah, anda boleh menggunakan pengguna@'host' Tentukan, jika tidak dinyatakan, lalainya ialah %


4. Operasi kelompok

1.) Pelaksanaan kumpulan skrip SQL

# 切换到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;

2.) Sandaran/pulihkan pangkalan data

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

1.

$ 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
Apa yang perlu diperhatikan di sini ialah setiap arahan perlu diakhiri dengan koma bertitik ";".

2. Ralat pengguna nol

RALAT 1044 (42000): Akses dinafikan untuk pengguna ''@'localhost' ke pangkalan data 'mysql' Ralat:
$ mysql –skip-grant-table &
  mysql> use mysql;
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;
Sebab :

Dalam jadual pengguna pangkalan data mysql, terdapat akaun dengan nama pengguna kosong, iaitu akaun tanpa nama Akibatnya, walaupun anda menggunakan root semasa log masuk, anda sebenarnya log masuk tanpa nama.

Penyelesaian:

3 Root boleh digunakan pada perkhidmatan, tetapi log masuk jauh tidak boleh dilakukan

4. Caching_sha2_password gesaan sambungan jauh

# 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;
Sejak mysql versi 5.7, kaedah pengesahan caching_sha2_password telah diterima pakai secara lalai

$ 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;
5 >

Pembelajaran yang disyorkan : "

tutorial video mysql
"
mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root密码';

Atas ialah kandungan terperinci Satu artikel meringkaskan aplikasi pangkalan data Mysql dan masalah biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:segmentfault.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam