mysql基本語句

來源:互聯網
上載者:User

標籤:發送   grant   insecure   upd   lis   切換   hang   etc   func   

設定更改root密碼

安裝mysql後預設是沒有密碼的(mysql5.7以後會隨機產生一個root密碼),需要手動去為mysql的root管理員建立密碼
初次使用mysql時,是沒有mysql命令的,這是因為PATH路徑中沒有添加mysql的bash路徑,需要我們使用export PATH添加一下即可,這裡我寫入到了/etc/profile檔案當中,這樣每次開機啟動時都會自動載入這個路徑,生效這個路徑下的命令
這裡把所有的路徑指定了一下,其中包含重複的,不過這樣不會影響到系統正常使用的

[[email protected] ~]# vim /etc/profileexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3/bin:/root/bin:/usr/local/mysql/bin/

修改預設沒有密碼的mysql,預設沒有密碼的mysql;不要求輸入密碼就能夠登入其sql命令列中,可以在命令列中指定使用者身份更新密碼,也可以使用mysqladmin來更新密碼,這種方式比較簡單
在命令列中直接寫入密碼來登入mysql,會有警告提示,警告使用者盡量不要使用命令列輸入密碼的方式登入,因為其密碼是明文顯示的

[[email protected] ~]# mysqladmin -uroot -password ‘[email protected]‘[[email protected] ~]# mysql -uroot [email protected]mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.6.12 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql>

修改my.cnf來更改mysql的密碼,在my.cnf設定檔中添加skip-grand這項配置,然後重啟mysql服務,在mysql5.7中,添加skip-grant則會導致mysql無法啟動了,mysql5.7在初始化時會輸出一個初始值的密碼,需要在安裝時留意這個密碼,或者在root目錄下找到.mysql_secret這個隱藏檔案,其第二行就是預設密碼,如果批量部署時可以使用特殊許可權應用指令碼來修改mysql的預設密碼。

[[email protected] ~]# vim /etc/my.cnf[mysqld]basedir = /usr/local/mysql/datadir = /usr/local/mysql/dataport = 3306character-set-server = utf8explicit_defaults_for_timestamp = true#skip-grant[[email protected] ~]# /etc/init.d/mysqld restartShutting down MySQL.. SUCCESS!Starting MySQL. SUCCESS!

mysql5.7查看預設初始化的密碼

[[email protected] ~]# cat .mysql_secret #Password set for user ‘[email protected]‘ at 2018-08-10 18:01:37 aiivsz&#du_.

mysql5.7中修改密碼
使用預設密碼後無密碼認證登入mysql,修改mysql表內容來修改root管理員密碼

[[email protected] ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.22 Source distributionCopyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql> SET PASSWORD FOR ‘root‘@localhost = PASSWORD(‘[email protected]‘);Query OK, 0 rows affected, 1 warning (0.00 sec)

連結mysql
mysql密碼建立好能正常使用後,我們會在一些遠程工具或本地的某些環境中對mysql執行操作(如shell裡),針對這些我們直接使用mysql命令來遠程登入到這個資料庫再執行操作
mysql指定IP地址進行連結,登入時可以不指定密碼,如果是在指令碼這樣的程式中操作,則需要-p密碼 ?這樣來直接登入到mysql中,-P 是指定連接埠號碼

[[email protected] ~]# mysql -uroot -p -h127.0.0.1 -P 3306Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 6Server version: 5.7.22 Source distributionCopyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql> 

使用sock檔案的通訊方式來登入mysql,這種和ip區別在於讀取資料時不通過tcp/ip協議,也就是不會把資料發送到網卡然後去讀取,可以為資料查詢提高點讀取速度,-S後指定sock檔案所在目錄,-S和路徑後沒有空格

[[email protected] ~]# mysql -uroot -p -S/usr/local/mysql/mysql.sockEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.22 Source distributionCopyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.mysql> 

命令列中查詢mysql中的資料,一般使用在指令碼當中,mysql在登入後,執行語句會有斷行符號的互動動作,依靠指令碼語言實現起來比較麻煩,這裡就使用了mysql ?-e 來直接輸出sql查詢的結果,-e 後面的sql語句需要使用單引號引用起來

[[email protected] ~]# mysql -uroot [email protected] -e ‘show databases‘mysql: [Warning] Using a password on the command line interface can be insecure.+--------------------+| Database ? ? ? ? ? |+--------------------+| information_schema || mysql ? ? ? ? ? ?  || performance_schema || sys ? ? ? ? ? ? ?  |+--------------------+
mysql常用語句

查詢mysql的所有庫 ? ? show databases;

mysql> show databases;+--------------------+| Database ? ? ? ? ? |+--------------------+| information_schema || mysql ? ? ? ? ? ?  || performance_schema || sys ? ? ? ? ? ? ?  |+--------------------+4 rows in set (0.00 sec)

進入或切換一個庫,這裡進入名為mysql的庫 ? ??use mysql;
並查詢庫裡有哪些表 ? ? show tables;

mysql> use mysql;Database changedmysql> show tables;+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv || db ? ? ? ? ? || engine_cost  || event ? ? ?  || func ? ? ? ? || general_log  |-----------------省略部分

查看錶裡的欄位 ? desc ?tb_name(表名);

mysql> desc user;+------------------------+-----------------------------------+------+-----+-----------------------+-------+| Field | Type | Null | Key | Default | Extra |+------------------------+-----------------------------------+------+-----+-----------------------+-------+| Host ? ? ? ? ? ? ? ? | char(60) ? ? ? ? ? ? ? ? | NO | ? ? PRI| ? ? ?  | ? ? ? ? ? ? ? ? ?  || User ? ? ? ? ? ? ? ? | char(32) ? ? ? ? ? ? ? ? | NO | ? ? PRI| ? ? ?  | ? ? ? ? ? ? ? ? ?  || Select_priv ? ? ? ?  | enum(‘N‘,‘Y‘) ? ? ? ? ?  | NO | ? ? ?  | ? ?  N | ? ? ? ? ? ? ? ? ?  || Insert_priv ? ? ? ?  | enum(‘N‘,‘Y‘) ? ? ? ? ?  | NO | ? ? ?  | ? ?  N | ? ? ? ? ? ? ? ? ?  || Update_priv ? ? ? ?  | enum(‘N‘,‘Y‘) ? ? ? ? ?  | NO | ? ? ?  | ? ?  N | ? ? ? ? ? ? ? ? ?  | ------------------省略部分欄位

查看建表的語句 show create table tb_name\G;?
可以通過show create table 來查看建立表時使用的語句規則,加上\G使輸出更加可視化,不然則是輸出較多的符號,不易理解

mysql> show create table user\G;*************************** 1. row *************************** ? ? ? Table: userCreate Table: CREATE TABLE `user` (`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,-------省略部分-----------------------------------

查看當前登入到mysql的使用者? select ?user();
查看登入到mysql的有哪些,且是用什麼方式登入的(本地或IP登入) ,這裡是在本地登入mysql,遠程登入mysql會顯示出登入的ip或者解析的主機名稱,若不想讓mysql解析遠程ip,則需要在my.cnf中禁止解析ip的操作

mysql> select user();+----------------+| user() |+----------------+| [email protected] |+----------------+1 row in set (0.00 sec)

查看當前使用的資料庫??select database();
查看登入資料庫執行某些進入庫的操作後,查看自己現在操作處於哪個庫下

mysql> select database();+------------+| database() |+------------+| mysql ? ?  |+------------+1 row in set (0.00 sec)

建立一個庫 create database holle;
建立庫(database)指定建立的庫所用的名稱

mysql> create database holle;Query OK, 1 row affected (0.00 sec)

建立表?create table tb1(id int(4),namechar (40))ENGINE=innodb DEFAULT CHARSET=utf8;
這裡建立資料表的內容是;建立一張id長度是4的、字元長度40的表,其指定了資料表使用的查詢引擎和字元集(ENGINE和DEFAULT CHARSET)

mysql> create table tb1(`id` int(4),`name`char (40))ENGINE=innodb DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.02 sec)mysql> show create table tb1\G;*************************** 1. row *************************** ? ? ? Table: tb1Create Table: CREATE TABLE `tb1` ( ?`id` int(4) DEFAULT NULL, ?`name` char(40) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf81 row in set (0.00 sec)

查看資料庫版本 ?mysql> select version();

mysql> select version();+-----------+| version() |+-----------+| 5.7.22 ?  |+-----------+1 row in set (0.00 sec)

查看資料庫狀態 ? show status;
查看常用的資料狀態

mysql> show status;+-----------------------------------------------+--------------------------------------------------+| Variable_name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  |+-----------------------------------------------+--------------------------------------------------+| Aborted_clients ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  || Aborted_connects ? ? ? ? ? ? ? ? ? ? ? ? ? ?  | 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  |----------------------------省略部分

查看mysql的設定參數 ?show variables\G; ? ??

mysql> show variables\G;*************************** 462. row ***************************Variable_name: sql_log_off ? ? ?  Value: OFF*************************** 463. row ***************************Variable_name: sql_mode ? ? ?  Value: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION*************************** 464. row ***************************Variable_name: sql_notes ? ? ?  Value: ON

查看某個參數的統配 ??show variables like ‘max_connect%‘;
?用於尋找對應的配置參數,可以尋找不太確認的配置參數名稱,如所示:

mysql> show variables like ‘max_connect%‘;+--------------------+-------+| Variable_name | Value ? ?  |+--------------------+-------+| max_connect_errors ? | 100 || max_connections ? ?  | 151 |+--------------------+-------+2 rows in set (0.00 sec)mysql> show variables like ‘slave_parallel%‘;+------------------------+----------+| Variable_name ? ? ? ?  | Value ?  |+------------------------+----------+| slave_parallel_type ?  | DATABASE || slave_parallel_workers | 0 ? ? ?  |+------------------------+----------+2 rows in set (0.00 sec)

修改mysql配置的參數 ??set global max_connect_errors=1000;
將max_connect_errors的數值從100修改到1000,不過這個修改只是在記憶體當中生效,意味著如果發生關機開機重啟的操作時,這些參數會變回設定檔中的預設配置,要想永久生效應對my.cnf的內容進行配置

mysql> show variables like ‘max_connect%‘;+--------------------+-------+| Variable_name | Value ? ?  |+--------------------+-------+| max_connect_errors ? | 100 || max_connections ? ?  | 151 |+--------------------+-------+2 rows in set (0.00 sec)mysql> set global max_connect_errors=1000;Query OK, 0 rows affected (0.00 sec)mysql> show variables like ‘max_connect%‘;+--------------------+-------+| Variable_name ? ?  | Value |+--------------------+-------+| max_connect_errors | ?1000 || max_connections ?  | ? 151 |+--------------------+-------+2 rows in set (0.00 sec)

查看mysql處理列隊 ?show processlist;
查看mysql處理列隊的全部資訊 show full processlist;
這兩條語句主要查看mysql執行語句的處理情況,判斷mysql的工作狀態

mysql> show processlist;+----+------+-----------+---------+---------+-------+----------+------------------+| Id | User | Host | db | Command | Time ?  | State | Info ? ? | ? ? ? ? ? ? ? ?  |+----+------+-----------+---------+---------+-------+----------+------------------+| 9  | root | localhost | holle ? | Query ? | 0 ? ? | starting | show processlist |+----+------+-----------+---------+---------+-------+----------+------------------+1 row in set (0.00 sec)mysql> show full processlist;+----+------+-----------+-------+---------+------+----------+-----------------------+| Id | User | Host ? ?  | db ?  | Command | Time | State ?  | Info ? ? ? ? ? ? ? ?  |+----+------+-----------+-------+---------+------+----------+-----------------------+| 9  | root | localhost | holle | Query ? | 0 ?  | starting | show full processlist |+----+------+-----------+-------+---------+------+----------+-----------------------+1 row in set (0.00 sec)

mysql基本語句

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.