0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MySQL簡易入門教程

阿銘linux ? 來源:阿銘linux ? 2023-01-09 09:36 ? 次閱讀

16.1 MySQL簡介

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件之一。

MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。

16.2 MySQL版本

MySQL分社區(qū)版和商業(yè)版,社區(qū)版也就是開源版本,完全免費(fèi),而商業(yè)版要比社區(qū)版多了一些商業(yè)定制功能,需要收費(fèi)。而本教程中介紹的是社區(qū)版。

目前MySQL社區(qū)版有兩個(gè)主流活躍版本:5.7和8.0。據(jù)我觀察,MySQL每隔3個(gè)月就會發(fā)一個(gè)小版本,更新迭代速度非???。

截至阿銘發(fā)表此文章時(shí),5.7最新版本為5.7.40,而8.0最新版本為8.0.31。由于個(gè)別應(yīng)用開發(fā)環(huán)境使用的是5.7.x,所以我們只能使用5.7.x版本的MySQL。如果沒有特殊要求,一定要用8.0,因?yàn)?.0版本的MySQL要比5.7快不少。

本教程中,阿銘使用的是8.0.31。5.7版本和8.0版本在使用上稍有差異,但差異不太大。

16.3MySQL安裝(Centos/Rocky/Ubuntu都一樣)

1)下載

cd  /usr/local
curl -O https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz

2)解壓

tarJxfmysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
ln-smysql-8.0.31-linux-glibc2.12-x86_64mysql

3)創(chuàng)建用戶

useradd -s /sbin/nologin  mysql

4)創(chuàng)建數(shù)據(jù)目錄

mkdir-p/data/mysql
chown-Rmysql:mysql/data/mysql

5)定義配置文件

vi  /etc/my.cnf  #寫入如下內(nèi)容
[mysql]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
pid-file = /data/mysql/mysqld.pid
log-error = /data/mysql/mysql.err

6)安裝依賴

##Rocky / CentOS
yum install -y ncurses-compat-libs-6.1-9.20180224.el8.x86_64  libaio-devel
## Ubuntu
sudo  apt install  libaio-dev libtinfo5

7)初始化

/usr/local/mysql/bin/mysqld --console --initialize-insecure --user=mysql   ## initialize-insecure使用空密碼

8)啟動(dòng)

vi/usr/lib/systemd/system/mysqld.service#寫如下內(nèi)容
[Unit]
Description=MYSQL server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize $OPTIONS
ExecReload=/bin/kill -HUP -$MAINPID     #這里-HUP可以是改成-s HUP,就變成強(qiáng)制殺進(jìn)程,有需要可以改,下面也一樣
ExecStop=/bin/kill -QUIT $MAINPID        #-s QUIT是強(qiáng)制殺進(jìn)程
KillMode=process
LimitNOFILE=65535
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false

重新加載并啟動(dòng)服務(wù)

sudo systemctl daemon-reload
sudo systemctl enable mysqld
sudo systemctl start mysqld

9)配置環(huán)境變量

vi  /etc/profile  #最后面增加下面一行內(nèi)容
export PATH=$PATH:/usr/local/mysql/bin

然后執(zhí)行下面命令,使其生效

sudo source  /etc/profile

10)設(shè)置密碼

mysqladmin -uroot  password  'your_new_passwd'

16.4 重置MySQL root密碼

MySQL root為管理員用戶,如果root用戶密碼忘記,我們是有方法來重置的。

修改配置文件

vi /etc/my.cnf  #增加skip-grant-tables

重啟mysql服務(wù)

systemctl  restart mysqld

登錄MySQL

mysql -uroot

在MySQL命令行里執(zhí)行:

mysql> usemysql;
mysql> UPDATEuserSETauthentication_string=""WHEREuser="root";##這里就是要?jiǎng)h除掉原來密碼

再次修改配置文件

 vi /etc/my.cnf  #刪除skip-grant-tables 參數(shù)

重啟服務(wù)

systemctl restart mysqld

再次登錄MySQL

mysql -uroot

在MySQL命令行里,重置密碼

mysql> usemysql;
mysql> ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'Aminglinux.com';
mysql> flush privileges;

16.5 連接MySQL

1)連接本機(jī)的MySQL

mysql-uroot-pAminglinux.com#-p后面跟密碼,如果有特殊符號要帶單引號,-p后面不用帶空格

2)連接遠(yuǎn)程機(jī)器

mysql-uroot-pAminglinux.com-h127.0.0.1-P3306#-P后面跟端口

3)使用socket文件連接(本地)

mysql-uroot-pAminglinux.com-S/tmp/mysql.sock#-S后面g跟socket文件路徑

4)直接在shell里運(yùn)行MySQL命令

mysql-uroot-pAminglinux.com-e"showdatabases"#-e后面跟要運(yùn)行的命

16.6MySQL常用命令

1)查詢庫

mysql> show databases;

2)切換庫

mysql> use mysql;

3)查看庫里的表

mysql> show tables;

4)查看表里的字段

mysql> desc tb_name;

5)查看建表語句

show create table tb_nameG

6)查看當(dāng)前用戶

mysql> select user();

7)查看當(dāng)前使用的數(shù)據(jù)庫

mysql> select database();

8)創(chuàng)建庫

mysql> create database db1;

9)創(chuàng)建表

mysql> use db1; create table t1(`id` int(4), `name` char(40));

10)查看當(dāng)前數(shù)據(jù)庫版本

mysql> select version();

11)查看數(shù)據(jù)庫狀態(tài)

mysql> show status;

12)查看各參數(shù)

mysql> show variables; #查看所有參數(shù)
mysql>showvariableslike'max_connect%';#過濾關(guān)鍵詞

13)修改參數(shù)

mysql>setglobalmax_connect_errors=1000;#設(shè)置指定參數(shù)

14)查看隊(duì)列

mysql> show processlist; 
mysql>showfullprocesslist;#顯示的更全

16.7 MySQL創(chuàng)建用戶和授權(quán)

1)創(chuàng)建用戶,客戶端允許為所有

mysql> create user 'user1'@'%' identified by 'Abc.123.com';

2)授權(quán)所有權(quán)限,所有庫,所有表

mysql>grantallon*.*to'user1';#all表示所有權(quán)限(比如,select/update/insert/delete等全部權(quán)限),第一個(gè)*表示所有庫,第二個(gè)*表示所有表

3)創(chuàng)建用戶,客戶端允許某個(gè)IP段

mysql> create user 'user2'@'192.168.133.%' identified by 'passwd';

4)授權(quán)指定權(quán)限

mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1';

5)查看授權(quán)情況

mysql> show grants;
mysql> showgrantsforuser2@192.168.133.1;

16.8常用sql語句

SQL是關(guān)系型數(shù)據(jù)庫的核心,除了MySQL外,其它關(guān)系型數(shù)據(jù)庫也是用這些SQL。下面阿銘就給大家列幾個(gè)最常用的SQL命令。

mysql>selectcount(*)frommysql.user;#查表的行數(shù)
mysql> select * from mysql.db; #查表的所有內(nèi)容
mysql> select db from mysql.db; #查看db表里db列內(nèi)容
mysql> select db,user from mysql.db; #查看多列
mysql> select * from mysql.db where host like '192.168.%'; #查看表內(nèi)容,設(shè)定條件
mysql> insert into db1.t1 values (1, 'abc'); #插入數(shù)據(jù)
mysql> update db1.t1 set name='aaa' where id=1; #插入數(shù)據(jù),帶條件
mysql>truncatetabledb1.t1; #清空表
mysql> drop table db1.t1; #刪除表
mysql> drop database db1; #刪除庫

16.9 mysql數(shù)據(jù)庫備份和恢復(fù)

1)備份庫

mysqldump -uroot -pAminglinux.com mysql > /tmp/mysql.sql

2)恢復(fù)庫

mysql -uroot -pAminglinux.com mysql < /tmp/mysql.sql

3)備份表

mysqldump -uroot -pAminglinux.com mysql user > /tmp/user.sql

4)恢復(fù)表

mysql -uroot -pAminglinux.com mysql < /tmp/user.sql

5)備份所有庫

mysqldump -uroot -p -A >/tmp/123.sql

6)備份指定庫

mysqldump -uroot -p -B db1 db2 > /tmp/db1_db2.sql

7)只備份表結(jié)構(gòu)

mysqldump -uroot -pAminglinux.com -d mysql > /tmp/mysql.sql

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3799

    瀏覽量

    64389
  • 管理系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    2498

    瀏覽量

    35924
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    809

    瀏覽量

    26569

原文標(biāo)題:MySQL簡易入門教程

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    手把手教你入門MySQL零基礎(chǔ)入門教程!

    手把手教你入門MySQL零基礎(chǔ)入門教程! 目前MySQL已經(jīng)成為最為流行的開源關(guān)系數(shù)據(jù)庫系統(tǒng),并且一步一步地占領(lǐng)了原有商業(yè)數(shù)據(jù)庫的市場??梢钥吹紾oogle、Facebook、Yaho
    發(fā)表于 06-15 13:20

    MySQL零基礎(chǔ)入門教程!

    手把手教你入門MySQL零基礎(chǔ)入門教程! 目前MySQL已經(jīng)成為最為流行的開源關(guān)系數(shù)據(jù)庫系統(tǒng),并且一步一步地占領(lǐng)了原有商業(yè)數(shù)據(jù)庫的市場。可以看到Google、Facebook、Yaho
    發(fā)表于 06-17 14:54

    免費(fèi)分享: MySQL零基礎(chǔ)入門教程!

    免費(fèi)分享: MySQL零基礎(chǔ)入門教程! 目前MySQL已經(jīng)成為最為流行的開源關(guān)系數(shù)據(jù)庫系統(tǒng),并且一步一步地占領(lǐng)了原有商業(yè)數(shù)據(jù)庫的市場??梢钥吹紾oogle、Facebook、Yahoo、網(wǎng)易、久游等
    發(fā)表于 08-11 09:56

    studio使用入門教程

    studio使用入門教程
    發(fā)表于 01-09 10:44 ?0次下載

    硬件工程師入門教程

    硬件工程師入門教程硬件工程師入門教程硬件工程師入門教程硬件工程師入門教程硬件工程師入門教程
    發(fā)表于 01-05 15:53 ?258次下載

    C語言入門教程

    很好的C語言入門教程,可以肯定的說這個(gè)教程只是為初學(xué)或入門者準(zhǔn)備的
    發(fā)表于 01-22 14:46 ?7次下載

    Java經(jīng)典入門教程

    Java經(jīng)典入門教程,PDF格式,經(jīng)典教程。
    發(fā)表于 03-14 11:16 ?0次下載

    protel99se入門教程

    protel99se入門教程,單片機(jī)入門教程。
    發(fā)表于 05-09 10:59 ?63次下載

    51單片機(jī)c51語言入門教程C語言入門教程

    51單片機(jī)c51語言入門教程,C語言入門教程
    發(fā)表于 08-29 15:02 ?32次下載

    arduino入門教程 非常適合入門

    arduino入門教程 非常適合入門
    發(fā)表于 09-21 09:20 ?67次下載
    arduino<b class='flag-5'>入門教程</b> 非常適合<b class='flag-5'>入門</b>

    MySQL 超級入門教程以及MySQL 資源大全的分享

    MySQL數(shù)據(jù)庫入門看這篇就夠了,非常全面!
    的頭像 發(fā)表于 02-03 15:01 ?7029次閱讀

    MySQL入門教程課件和筆記及函數(shù)等資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是MySQL入門教程課件和筆記及函數(shù)等資料合集免費(fèi)下載主要內(nèi)容包括了:1.認(rèn)識數(shù)據(jù)庫和mysql2.mysql連接3.入門語句4.基本增刪改查5.詳解列類型6
    發(fā)表于 12-19 08:00 ?19次下載

    Python經(jīng)典入門教程

    Python的經(jīng)典入門教程資料分享。
    發(fā)表于 06-01 10:25 ?117次下載

    硬件入門教程

    硬件入門教程
    發(fā)表于 07-04 14:49 ?77次下載

    PADS詳細(xì)入門教程

    PADS 詳細(xì)入門教程
    發(fā)表于 09-28 09:59 ?98次下載