mysql的安裝和基本命令_MySQL安裝以及簡單命令用法

MYSQL:關系型數據庫

存儲引擎:負責將邏輯層的概念轉化為物理層機制,在物理層完成物理機制。

支持事務:transaction

必須滿足的條件:ACID(一致性,持久性,原子性,隔離性)

鎖:并發訪問

隨機訪問:數據在磁盤上是隨機存儲的

安裝:

OS Vendor使用操作系統安裝:

以CentOS為例:mysql,

mysql-server:

mysql-devel:編譯安裝時需要

MySQL官方提供的安裝:官方網站:www.mysql.com

源碼編譯安裝

通用二進制格式程序包安裝

rpm包安裝

還可以通過鏡像下載:http://mirrors.sohu.com/

MySQL的配置文件:my.cnf,集中式多段配置文件

MySQL服務器程序:mysqld

客戶端程序:mysql, mysqldump, mysqladmin

建議在生產環境中將mysql安裝在邏輯卷上,這樣方便以后的管理,空間不夠的話可以增大空間。

datadir: /var/lib/mysql/

datadir: /usr/local/mysql/data/

mysqld: mysql,:mysql

以mysql用戶的身份操作,屬主和屬組都為mysql,并且對所操作的目錄有讀和寫的權限。

安裝操作

1:創建邏輯卷并掛載

創建磁盤分區

#fdisk /dev/sda

創建物理分區

#pvcreate /dev/sda{3,5}

創建卷組為myvg

#vgcreate myvg /dev/sda{3,5}

創建邏輯卷mydata

#lvcreate -L 20G -n mydata myvg

對其進行格式化

#mke2fs -t ext4 -L MYDATA -b 2048 /dev/myvg/mydata

進行掛載

#mkdir /mydata

#mount -a

要使得能夠開機自動掛載,需要編輯配置文件/etc/fstab

211f221f6b20657a839845970b93f32b.png

在/mydata下創建data目錄

#mkdir/mydata/data

2:解壓安裝

添加系統用戶mysql

#useradd -r mysql

修改屬主和屬組

#chown -R mysql:mysql /mydata/data

下載的文件解壓到/usr/local/

#tar xfmysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local

在這里,我們還有查看是否安裝啟動別的mysql版本的服務器,如果有,那么我們需要將其關閉

#ss -tanl其中3306端口需要是關閉狀態

在/usr/local/下

#ln -sv mysql-5.5.33-linux2.6-x86_64 mysql

#chown -R root:mysql /usr/local/mysql/*

#cd mysql/support-files有樣例,我們可以根據自己的需要選擇

將選擇的文件復制一份到/etc/目錄下并修改文件名為my.cnf

#cp my-large.cnf /etc/my.cnf

3:修改配置文件

#vim /etc/my.cnf

找到相關設置進行修改操作

a773d4514e4868c1e251d977801b7a45.png

thread_concurrency = 4并發核心數,如果物理核心為2,這里就可以填寫4

在下面添加datadir = /mydata/data

添加

innodb_file_per_table = 1 ?每表一個表空間

服務腳本

#cp mysql.server /etc/rc.d/init.d/mysqld

添加mysql服務

#chkconfig --add mysqld

啟動mysql

#service mysqld start

這時候顯示啟動失敗了,分析出來我們要先初始化,因而我們安裝mysql時要注意,第一次安裝啟動時要進行初始化,對所出現的問題我們進行處理

先將/mydata/data/下的所有文件刪除掉

#rm -rf /mydata/data/*

進行初始化

#cd /usr/local/mysql/

#scripts/mysql_install_db --user=mysql --datadir=/mydata/data/初始化成功

啟動服務

#service mysqld start

這時候還不能連接客戶端

# vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

執行腳本

# . /etc/profile.d/mysql.sh

#mysql就可以進入了

4:因為我們的安裝不在標準路徑下,所以還要導出相關文件

導出幫助文件

#vim /etc/man.config

MANPATH /usr/local/mysql/man

導出頭文件

#ln -sv /usr/local/mysql/include /usr/local/mysql

導出庫文件

#vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

至此我們的mysql配置完成。

mysql> show [global|session] variables;顯示服務器參數變量

有些變量的值可以修改,能夠改變mysql的工作特性

有些可以動態調整,即刻生效;

另外一些只能修改配置文件后,重啟生效;

mysql> show [global|session] status;顯示服務器狀態變量,記錄了當前包括過去的時間內mysql的運行統計數據

MySQL用戶名:USERNAME@HOST

mysql客戶端執行命令:

客戶端命令:不需語句結束符

mysql> help

服務器端命令:特指SQL語句,必須有語句結束符,默認為分號;

mysql> help COMMAND

用戶管理:

創建用戶:

CREATE USER username@host [IDENTIFIED BY 'password'];

用戶或主機可以使用通配符:

%:匹配任意長度的任意字符;

_: 匹配任意單個字符;

例如:CREATE USER‘wpuser’@‘172.16.%.%’IDENTIFIED BY 'wppass'

允許172.16.網段的主機連接創建wpuser用戶 ?密碼為wppass

用戶授權:GRANT ALL PRIVILEGES ON dbname.tablename TO username@host [IDENTIFIED BY 'password'];

dbname.tablename ?dbname表示庫名

tablename表示表名

修改用戶密碼:

1、mysql> SET PASSWORD FOR username@host=PASSWORD('password');

2、# mysqladmin -uusername password 'password' -p

-p 后面跟以前的密碼

刪除用戶:DROP USER username@host;

授權

GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'mypass';有特殊符號需要用引號引起來

mysql>SELECT VERSION(); ? ?顯示版本號

mysql>SHOW DATABASES; ? ? ?顯示數據庫

mysql>SELECT user,host,password FROM user; 從user表查詢user,host,password 相關信息

mysql>FLUSH PRIVILEGES; ? 重讀授權表

加密碼:

mysql>SET PASSWORD FOR‘root‘@host=PASSWORD('password');

創建表:

mysql>CREATE TABLE tb_name (col1 defination, col2 defination, ..., key defination);

刪除表:

mysql>DROP TABLE tb_name;

INSERT INTO ?:插入內容

SELECT 字段FROM表WHERE ;

字段:

col1, col2

*

col1 AS NEWNAME, col2,

比較運算:>, =, <=, =, !=

NULL: IS NULL, IS NOT NULL

LIKE :

%: 任意長度的任意字符

_:任意單個字符

IN (LIST)

RLIKE: 正則表達式書寫模式

UPDATE 表名SET字段名=值WHERE;

DELETE FROM 表名WHERE ;

mysql>

quit, \q退出

delimiter, \d變換語句結束符,定義使用的結束符

go, \g不知道結束符而把語句送到服務器端去執行

use, \u設定默認數據庫

ego, \G不知道結束符而把語句送到服務器端去執行,并且將每一行的結果縱向顯示

system, \!不退出當前mysql客戶端程序而執行系統命令

status, \s顯示當前mysql服務器的狀態信息

mysql:執行方式有兩種

交互式方式:

-h, --host=指定要連接的遠程主機

-u, --user=指定用戶名

-p, --password=密碼

-D db_name, --database=可以直接將某個指定的數據庫設定為數據庫

-e 'SQL_Statement;'不會連接到主機,而是將命令送到對方主機后直接將結果取回來

批處理模式:(使用sql腳本)

mysql OPTIONS < script.sql

mysql> source /path/to/script.sql

#vim test.sql

create database wpdb;

Create user‘wpuser’@’172.16.%.%’identified by‘wppass’;

Create user‘wpuser’@’localhost’identified by‘wppass’;

Grant all wpdb.*‘wpuser’@’172.16.%.%’;

Grant all wpdb.*‘wpuser’@’localhost’;

#mysql -uroot -pmypass < test.sql

mysqld, mysql: /etc/my.cnf配置文件

/etc/my.cnf, /etc/mysql/my.cnf, $MYSQL_BASE/my.cnf, ~/.my.cnf

#vim .my.cnf

[client]

user=root

host=localhost

password=mypass

#chmod 600 .my.cnf 修改權限對當前用戶有效

這樣本機用戶就不用每次都指定用戶名、主機名、密碼了,而其他用戶不會有權限,

顯示所支持的所有字符集:

mysql> SHOW CHARACTER SET;

顯示所有字符集的排序規則:

mysql> SHOW COLLATION;

關系型數據庫:

Constraint:

主鍵:primary key

不能為空,惟一;

惟一鍵:uniq key

可以為空,惟一;

外鍵:foreign key

引用性約束

檢查性約束:

0

MySQL基礎操作練習(所屬的庫叫做testdb):

新建如下表(包括結構和內容):

ID ? ?Name ? ? ? ? ?Age ? ? Gender ? ? Course

1 ? ? Ling Huchong ? 24 ? ? ?Male ? ? ? Huashan

2 ? ? Huang Rong ? ?19 ? ? ?FemaleEmen

3 ? ? Lu Wushaung ? 18 ? ? ?FemaleHengshan

4 ? ? Zhu Ziliu52 ? ? ?MaleKongdong

5 ? ? Chen Jialuo22 ? ? ?MaleShaolin

創建庫:

mysql>create database testdb

啟用testdb庫

mysql>use testdb

創建表tb1

mysql>CREATE TABLE tb1 (ID TINYINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, Name CHAR(30) NOT NULL UNIQUE KEY, Age TINYINTUNSIGNED, Gender CHAR(1) DEFAULT 'M', Course VARCHAR(50) NOT NULL);

查看數據庫

mysql> show databases;

DESCRIPTION tb1 查看有幾個字節

插入內容

mysql> insert into tb1 values (1,'Ling Huchong',24,'Male','Huashan');

mysql> insert into tb1 values (2,'Huang Rong',19,'Female','Emen');

mysql> insert into tb1 values (3,'Lu Wushaung',18,'Female','Hengshan');

mysql> insert into tb1 values (4,'Zhu Ziliu',52,'Male','Kongdong');

mysql> insert into tb1 values (5,'Chen Jialuo',22,'Male','Shaolin');

至此tb1表所有內容都存在了,可以查看一下:

899e303d3a4d14d649780e54a6b4f922.png

2、完成如下操作

(1)找出性別為女性的所有人;

mysql> SELECT name FROM tb1 WHERE Gender='Female';

(2)找出年齡大于20的所有人;

mysql> SELECT name FROMtb1WHERE Age>20;

(3)修改Zhu Ziliu的Course為Wudang;

mysql> UPDATEtb1SET Course='Wudang' WHERE name='Zhu Ziliu';

(4)刪除年齡小于等于19歲的所有人;

mysql> DELETE FROMtb1WHERE Age<=19;

(5)創建此表及所屬的庫;

(6)授權給testuser對testdb庫有所有訪問權限;

mysql> GRANT ALL ON testdb.* TO 'testuser'@'%';

mysql>DROP TABLE tb1;刪除表tb1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541910.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

將數組轉換為JavaScript中的對象

Lets say you have the following array, 假設您有以下數組&#xff0c; const nums [1, 2, 3, 4, 5];console.log(nums);Output 輸出量 (5) [1, 2, 3, 4, 5]We know that nums is an array and we can see in the output that we get an array. Lets convert it into an ob…

docker集群運行在calico網絡上

2019獨角獸企業重金招聘Python工程師標準>>> ##網絡及版本信息 docker1 centos7 192.168.75.200 docker2 centos7 192.168.75.201 物理網絡 192.168.75.1/24 Docker version 1.10.3, build 3999ccb-unsupported &#xff0c;安裝過程略 # calicoctl version Version…

python批量雷達圖_python批量制作雷達圖

老板要畫雷達圖&#xff0c;但是數據好多組怎么辦&#xff1f;不能一個一個點excel去畫吧&#xff0c;那么可以利用python進行批量制作&#xff0c;得到樣式如下&#xff1a;首先制作一個演示的excel&#xff0c;評分為excel隨機數生成&#xff1a;1 INT((RAND()4)*10)/10加入標…

JavaScript中帶有示例的Math.log()方法

JavaScript | Math.log()方法 (JavaScript | Math.log() Method) Math.log() is a function in math library of JavaScript that is used to return the value of natural Log i.e. (base e) of the given number. It is also known as ln(x) in mathematical terms. Math.log…

SUI踩坑記錄

SUI踩坑記錄 最近做了個項目選型了SUI和vue做單頁應用。下面記錄一下踩坑經歷SUI 介紹 sui文檔&#xff1a;http://m.sui.taobao.org/SUI Mobile 是一套基于 Framework7 開發的UI庫。它非常輕量、精美&#xff0c;只需要引入我們的CDN文件就可以使用&#xff0c;并且能兼容到 i…

java 寫入xml文件_java讀寫xml文件

要讀的xml文件李華姓名>14年齡>學生>張三姓名>16年齡>學生>學生花名冊>package xml;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.Iterator;import java.util.Vector;import javax.xml.pa…

JavaScript中帶有示例的Math.max()方法

JavaScript | Math.max()方法 (JavaScript | Math.max() Method) Math.max() is a function in math library of JavaScript that is used to return the greatest value of all the passed values to the method. Math.max()是JavaScript數學庫中的函數&#xff0c;用于將所有…

java 修飾符默認_Java和C#默認訪問修飾符

C#中&#xff1a;針對下面幾種類型內部成員的訪問修飾符&#xff1a;enum的默認訪問修飾符&#xff1a;public。class的默認為private。interface默認為public。struct默認為private。其中&#xff1a;public可以被任意存取&#xff1b;protected只可以被本類和其繼承子類存取&…

JavaScript中帶有示例的Math.abs()方法

JavaScript | Math.abs()方法 (JavaScript | Math.abs() Method) Math operations in JavaScript are handled using functions of math library in JavaScript. In this tutorial on Math.abs() method, we will learn about the abs() method and its working with examples.…

人臉識別python face_recognize_python2.7使用face_recognition做人臉識別

偶然看到一篇文章&#xff0c;說是可以實時人臉識別&#xff0c;很有興趣就自己按照文章開始動手人臉識別&#xff0c;但是實現過程中遇到了幾個問題這里做個總結&#xff0c;希望可以幫助到大家安裝face_recognition這個之前需要先安裝編譯dlib&#xff0c;如果沒有安裝dlib&a…

c# reverse_清單 .Reverse()方法,以C#為例

c# reverseC&#xff03;List <T> .Reverse()方法 (C# List<T>.Reverse() Method) List<T>.Reverse() method is used to reverse the all list elements. List <T> .Reverse()方法用于反轉所有列表元素。 Syntax: 句法&#xff1a; void List<T&…

cpuinfo詳解

cat /proc/cpuinfo processor: 23&#xff1a;超線程技術的虛擬邏輯核第24個 ###一般看最后一個0...23 表示24線程 vendor_id: GenuineIntel&#xff1a;CPU制造商cpu family: 6&#xff1a;CPU產品系列代號model: 44&#xff1a;CPU屬于其系列中的哪一代號model name: Intel…

jvm延遲偏向_用于偏向硬幣翻轉模擬的Python程序

jvm延遲偏向Here, we will be simulating the occurrence coin face i.e. H - HEAD, T - TAIL. Simply we are going to use an inbuilt library called as random to call a random value from given set and thereby we can stimulate the occurrence value by storing the o…

java項目沒有bin_WebAPI項目似乎沒有將轉換后的web.config發布到bin文件夾?

我很擅長.NET配置轉換 . 我現在將它們放在用于數據使用的類庫和WPF應用程序上 .但是&#xff0c;當我嘗試使用ASP.NET WebAPI項目進行設置時&#xff0c;似乎發生了一些奇怪的事情 .配置文件永遠不會顯示在我的bin目錄中&#xff0c;因此web.config始終顯示為預先形成的配置文件…

opengl es的射線拾取

2019獨角獸企業重金招聘Python工程師標準>>> 在opengl中關于拾取有封裝好的選擇模式&#xff0c;名字棧&#xff0c;命中記錄&#xff0c;實現拾取的功能&#xff0c;相對容易一些。但是到了opengl es里面就比較倒霉了&#xff0c;因為opengl es是opengl的簡化版&am…

java timezone_Java TimeZone useDaylightTime()方法與示例

java timezoneTimeZone類useDaylightTime()方法 (TimeZone Class useDaylightTime() method) useDaylightTime() method is available in java.util package. useDaylightTime()方法在java.util包中可用。 useDaylightTime() method is used to check whether this time zone u…

視覺學習(4) —— 添加地址傳遞數據

Modbus Slave 選擇一個地址右鍵&#xff0c;選擇發送的數據類型 視覺軟件 一、添加地址 當地址為100時&#xff0c;先將首地址改為100&#xff0c;第0個地址為100&#xff0c;第1個地址為101&#xff0c;往后累加 若想使用100—150的地址&#xff0c;即首地址為100&#xff…

某個JAVA類斷點無效_解決eclipse中斷點調試不起作用的問題

最近幾天&#xff0c;遇到了一個問題&#xff0c;就是在eclipse中進行斷點調試程序到時候&#xff0c;跟蹤不到我設置的斷點。困惑了很久&#xff0c;在網上也查閱了很多資料&#xff0c;都沒能解決我的問題。今天早上&#xff0c;我試著把eclipse的工作空間重新換了一個&#…

jquery中阻止事件冒泡的方法

2019獨角獸企業重金招聘Python工程師標準>>> 根據《jquery基礎教程》 第一種方法&#xff1a;判斷事件的“直接”目標是否是自身&#xff0c;如果不是自身&#xff0c;不予處理 $(div.outter).click(function(event) {if (event.target this) {$(p).css(color, red…