English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL 管理

启动及关闭 MySQL 服务器

Windows 系统下

在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录。

启动:

cd c:/mysql/bin
mysqld --console

Chiusura: }}

cd c:/mysql/bin
mysqladmin -uroot shutdown

Sotto sistema Linux

Prima di tutto, dobbiamo verificare se il server MySQL è avviato con il seguente comando:

ps -ef | grep mysqld

Se MySql è già avviato, i comandi sopra elencati mostreranno la lista dei processi mysql. Se mysql non è avviato, puoi utilizzare il seguente comando per avviare il server mysql:

root@host# cd /usr/bin
./mysqld_safe &

Se vuoi chiudere il server MySQL in esecuzione, puoi eseguire il seguente comando:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Inserisci la password: ******

Impostazioni utente MySQL

Se devi aggiungere un utente MySQL, dovrai solo aggiungere un nuovo utente nella tabella user del database mysql.

Di seguito è riportato un esempio di aggiunta di utenti, nome utente: guest, password: guest123, e l'utente è autorizzato a eseguire le operazioni SELECT, INSERT e UPDATE:

root@host# mysql -u root -p
Inserisci la password:*******
mysql> use mysql;
Database cambiato
mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)
mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host       | user    | password         |
+-----------+---------+------------------+
| localhost | guest   | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

Quando aggiungi un utente, presta attenzione a utilizzare la funzione PASSWORD() fornita da MySQL per criptare la password. Puoi vedere nell'esempio sopra che la password dell'utente è criptata come segue: 6f8c114b58f2ce9e.

Attenzione:Nel MySQL5.7, la colonna password della tabella user è stata sostituita conauthentication_string.

Attenzione:La funzione di crittografia password() è stata rimossa a partire dalla versione 8.0.11, può essere sostituita con la funzione MD5().

Attenzione:Attenzione: è necessario eseguire FLUSH PRIVILEGES Esercizio. Questo comando ricaricherà la tabella di autorizzazioni.

Se non utilizzi questo comando, non sarai in grado di connetterti al server mysql con l'utente creato di recente, a meno di riavviare il server mysql.

Puoi assegnare permessi all'utente durante la creazione dell'utente, impostando 'Y' nella colonna dei permessi corrispondenti nell'istruzione di inserimento, l'elenco dei permessi utente è il seguente:

  • Select_priv

  • Insert_priv

  • Update_priv

  • Delete_priv

  • Create_priv

  • Drop_priv

  • Reload_priv

  • Shutdown_priv

  • Process_priv

  • File_priv

  • Grant_priv

  • References_priv

  • Index_priv

  • Alter_priv

Un altro metodo per aggiungere un utente è tramite il comando GRANT SQL, il seguente comando aggiungerà l'utente zara al database specificato TUTORIALS con la password zara123.

root@host# mysql -u root -p
Inserisci la password:*******
mysql> use mysql;
Database cambiato
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    -> ON TUTORIALS.*
    -> TO 'zara'@'localhost'
    -> IDENTIFIED BY 'zara123';

Questi comandi creeranno un record di informazione utente nella tabella user del database mysql.

Attenzione: Le istruzioni SQL di MySQL si concludono con un punto e virgola (;).

Configurazione del file /etc/my.cnf

Di solito, non è necessario modificare questo file di configurazione, la configurazione predefinita è la seguente:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Nel file di configurazione, puoi specificare la directory in cui vengono memorizzati i file di log di errore, di solito non è necessario modificare queste configurazioni.

Comandi di gestione di MySQL

Di seguito è riportato un elenco dei comandi più utilizzati durante l'uso del database MySQL:

  • USE Nome_del_database :
    Seleziona il database Mysql da operare, dopo aver eseguito questo comando, tutti i comandi Mysql saranno diretti verso questo database.

    mysql> use w3codebox;
    Database cambiato
  • SHOW DATABASES:
    Elenca l'elenco dei database del sistema di gestione dei database MySQL.

    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | w3codebox             |
    | cdcol              |
    | mysql              |
    | onethink           |
    | performance_schema |
    | phpmyadmin         |
    | test               |
    | wecenter           |
    | wordpress          |
    +--------------------+
    10 righe nel set (0.02 sec)
  • SHOW TABLES:
    Mostra tutte le tabelle del database specificato, è necessario utilizzare il comando use prima di eseguire questo comando per selezionare il database da operare.

    mysql> use w3codebox;
    Database cambiato
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_w3codebox |
    +------------------+
    | employee_tbl     |
    | w3codebox_tbl       |
    | tcount_tbl       |
    +------------------+
    3 righe nel set (0.00 sec)
  • SHOW COLUMNS FROM Tabella:
    Mostra le proprietà della tabella, il tipo di proprietà, le informazioni sulla chiave primaria, se è NULL, il valore predefinito e altre informazioni.

    mysql> SHOW COLUMNS FROM w3codebox_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field           | Type         | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | w3codebox_id    | int(11)      | NO   | PRI | NULL    |       |
    | w3codebox_title | varchar(255) | YES  |     | NULL    |       |
    | w3codebox_author | varchar(255) | YES  |     | NULL    |       |
    | submission_date | date         | YES  |     | NULL    |       |
    +-----------------+--------------+------+-----+---------+-------+
    4 row(s) in set (0.01 sec)
  • SHOW INDEX FROM Tabella:
    Mostra le informazioni dettagliate sugli indici della tabella, inclusa la PRIMARY KEY (chiave primaria).

    mysql> SHOW INDEX FROM w3codebox_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table        | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | w3codebox_tbl |              | PRIMARY |              | w3codebox_id | A          |              | NULL     | NULL |              | BTREE |              |              |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 row in set (0.00 sec)
  • SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
    该命令将输出Mysql数据库管理系统的性能及统计信息。

    mysql> SHOW TABLE STATUS  FROM w3codebox;   # 显示数据库 w3codebox 中所有表的信息
    mysql> SHOW TABLE STATUS from w3codebox LIKE 'w3codebox%';     # 表名以w3codebox开头的表的信息
    mysql> SHOW TABLE STATUS from w3codebox LIKE 'w3codebox%'\G;   # 加上 \G,查询结果按列打印