mysql基礎
目錄
- mysql基礎
- mysql安裝
- 虛擬格式化
- mysql工具使用
- 資料庫操作
- 表操作
- 用戶操作
- 查看命令SHOW
- 獲取幫助
- MySQL 資料型別
mysql安裝
第一種方式:使用yum進行安裝
第二種方式:yum安裝mariadb
yum install -y mariadb*
配置mysql的yum源:
[root@lnh ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
--2022-07-25 17:03:13-- http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
Resolving dev.mysql.com (dev.mysql.com)... 184.29.181.90, 2600:1402:b800:1194::2e31, 2600:1402:b800:118f::2e31
Connecting to dev.mysql.com (dev.mysql.com)|184.29.181.90|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm [following]
--2022-07-25 17:03:13-- https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
Connecting to dev.mysql.com (dev.mysql.com)|184.29.181.90|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [following]
--2022-07-25 17:03:14-- https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
Resolving repo.mysql.com (repo.mysql.com)... 184.30.152.230
Connecting to repo.mysql.com (repo.mysql.com)|184.30.152.230|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25680 (25K) [application/x-redhat-package-manager]
Saving to: ‘mysql57-community-release-el7-11.noarch.rpm’
mysql57-community- 100%[================>] 25.08K 125KB/s in 0.2s
2022-07-25 17:03:15 (125 KB/s) - ‘mysql57-community-release-el7-11.noarch.rpm’ saved [25680/25680]
[root@lnh ~]# rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
warning: mysql57-community-release-el7-11.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:mysql57-community-release-el7-11 ################################# [100%]
[root@lnh ~]# rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
warning: mysql57-community-release-el7-11.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:mysql57-community-release-el7-11 ################################# [100%]
[root@lnh ~]# dnf module disable mysql //禁用mysql
MySQL Connectors Community 47 kB/s | 49 kB 00:01
MySQL Tools Community 257 kB/s | 651 kB 00:02
MySQL 5.7 Community Server 817 kB/s | 2.6 MB 00:03
Dependencies resolved.
============================================================================
Package Architecture Version Repository Size
============================================================================
Disabling modules:
mysql
Transaction Summary
============================================================================
Is this ok [y/N]: y
Complete!
[root@lnh ~]# dnf -y install mysql-community-server mysql-community-client mysql-community-common mysql-community-devel --nogpgcheck //不驗證合法性進行下載
[root@lnh ~]# systemctl enable --now mysqld //設定開機自啟
[root@lnh ~]# systemctl status mysqld.service //查看狀態
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor >
Active: active (running) since Mon 2022-07-25 17:36:19 CST; 12s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 67864 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run>
Process: 67814 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, sta>
Main PID: 67866 (mysqld)
Tasks: 27 (limit: 12221)
Memory: 310.2M
CGroup: /system.slice/mysqld.service
└─67866 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/>
Jul 25 17:36:17 lnh systemd[1]: Starting MySQL Server...
Jul 25 17:36:19 lnh systemd[1]: Started MySQL Server.
[root@lnh ~]# ss -antl //查看3306埠是否出現
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 80 *:3306 *:*
[root@lnh ~]# grep "password" /var/log/mysqld.log
2022-07-25T09:36:17.891633Z 1 [Note] A temporary password is generated for root@localhost: eNGwhYkrz3_(
//在日志檔案中找出臨時密碼
[root@lnh ~]# mysql -uroot -p //使用臨時密碼登錄
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.38
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
//修改mysql登錄密碼
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xbz123';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@lnh ~]# mysql -uroot -pxbz123 //驗證密碼修改成功
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 6
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
[root@lnh ~]# rpm -qa |grep mysql
mysql-community-client-5.7.38-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-common-5.7.38-1.el7.x86_64
mysql-community-server-5.7.38-1.el7.x86_64
mysql-community-devel-5.7.38-1.el7.x86_64
mysql-community-libs-5.7.38-1.el7.x86_64
[root@lnh ~]# rpm -e mysql57-community-release-el7-11.noarch
//卸載這個包防止其更新
虛擬格式化
[root@lnh ~]# mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root: //之前的密碼
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.
Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password: //新密碼
Re-enter new password: //再次輸入
Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
//不讓ssh遠程連接資料庫
... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
mysql工具使用
[root@lnh ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.38, for Linux (x86_64) using EditLine wrapper
//查看當前版本
[root@lnh ~]# mysql -uroot -pxbz123 -h127.0.0.1
//-h 指定服務器主機,默認為localhost,推薦使用ip地址
//直接在命令列輸入密碼登錄
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 10
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
Bye
[root@lnh ~]# mysql -uroot -p -h127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
//注意,不推薦直接在命令列里直接用-pPASSWORD的方式登錄,而是使用-p選項,然后互動式輸入密碼
[root@lnh ~]# mysql -uroot -p -h127.0.0.1 -e 'SHOW DATABASES;'
Enter password:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
//不登錄mysql查看有哪些資料庫
資料庫操作
mysql> create database tushanbu;
Query OK, 1 row affected (0.00 sec)
//創建資料庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| tushanbu |
+--------------------+
5 rows in set (0.00 sec)
//查看資料庫
mysql> drop database tushanbu
-> ;
Query OK, 0 rows affected (0.01 sec)
//洗掉資料庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
//查看資料庫
表操作
mysql> create database tushanbu;
Query OK, 1 row affected (0.00 sec)
//創建資料庫
mysql> use tushanbu; //進入資料庫
Database changed
mysql> create table tsb(id int not null,name varchar(100) not null,age int);
Query OK, 0 rows affected (0.02 sec)
//創建表
mysql> desc tsb; //查看結構
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| name | varchar(100) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> show tables;
+--------------------+
| Tables_in_tushanbu |
+--------------------+
| tsb |
+--------------------+
1 row in set (0.00 sec)
//查看表
mysql> drop table tsb;
Query OK, 0 rows affected (0.01 sec)
//洗掉表
mysql> show tables;
Empty set (0.00 sec)
//查看
用戶操作
mysql> create user 'lnh'@'127.0.0.1' identified by 'xbz123';
Query OK, 0 rows affected (0.01 sec)
//創建資料庫用戶lnh
mysql> quit
Bye
[root@lnh ~]# mysql -ulnh -pxbz123 -h127.0.0.1 //使用新創建的用戶和密碼登錄
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 15
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
[root@lnh ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> drop user 'lnh'@'127.0.0.1'; //洗掉資料庫用戶
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@lnh ~]# mysql -ulnh -pxbz123 -h127.0.0.1
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'lnh'@'localhost' (using password: YES
//已經洗掉
查看命令SHOW
[root@lnh ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show character set; //查看支持的所有字符集
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
...
mysql> show engines; //查看當前資料庫支持的所有存盤引擎
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
mysql> show databases; //查看資料庫的資訊
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| tushanbu |
+--------------------+
5 rows in set (0.00 sec)
mysql> show tables from tushanbu; //不進去其資料庫查看表
+--------------------+
| Tables_in_tushanbu |
+--------------------+
| tsb |
+--------------------+
1 row in set (0.00 sec)
mysql> desc tushanbu.tsb; //不進入資料庫查看資料庫表的結構
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| name | varchar(100) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> show create table tushanbu.tsb; //創建某表的創建命令
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------+
| tsb | CREATE TABLE `tsb` (
`id` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> use tushanbu;
mysql> show table status like 'tsb'\G
*************************** 1. row ***************************
Name: tsb
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: 2022-07-25 22:12:10
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
//進入資料庫查看表的狀態
獲取幫助
mysql> help create table;
Name: 'CREATE TABLE'
Description:
Syntax:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
[IGNORE | REPLACE]
[AS] query_expression
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
create_definition: {
col_name column_definition
| {INDEX | KEY} [index_name] [index_type] (key_part,...)
[index_option] ...
| {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...)
[index_option] ...
| [CONSTRAINT [symbol]] PRIMARY KEY
[index_type] (key_part,...)
//獲取創建表的幫助
MySQL 資料型別
MySQL中定義資料欄位的型別對資料庫的優化是非常重要的,MySQL支持多種型別,大致可以分為三類:數值、日期/時間和字串(字符)型別,
數值型別
MySQL支持所有標準SQL數值資料型別,這些型別包括嚴格數值資料型別(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值資料型別(FLOAT、REAL和DOUBLE PRECISION),
關鍵字INT是INTEGER的同義詞,關鍵字DEC是DECIMAL的同義詞,BIT資料型別保存位欄位值,并且支持MyISAM、MEMORY、InnoDB和BDB表,作為SQL標準的擴展,MySQL也支持整數型別TINYINT、MEDIUMINT和BIGINT,下面的表顯示了需要的每個整數型別的存盤和范圍



注意:char(n) 和 varchar(n) 中括號中 n 代表字符的個數,并不代表位元組個數,比如 CHAR(30) 就可以存盤 30 個字符,
CHAR 和 VARCHAR 型別類似,但它們保存和檢索的方式不同,它們的最大長度和是否尾部空格被保留等方面也不同,在存盤或檢索程序中不進行大小寫轉換,
BINARY 和 VARBINARY 類似于 CHAR 和 VARCHAR,不同的是它們包含二進制字串而不要非二進制字串,也就是說,它們包含位元組字串而不是字符字串,這說明它們沒有字符集,并且排序和比較基于列值位元組的數值值,
BLOB 是一個二進制大物件,可以容納可變數量的資料,有 4 種 BLOB 型別:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB,它們區別在于可容納存盤范圍不同,
有 4 種 TEXT 型別:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT,對應的這 4 種 BLOB 型別,可存盤的最大長度不同,可根據實際情況選擇,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/500271.html
標籤:Linux
上一篇:MySQL基礎
下一篇:立創EDA使用筆記
