中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一、MySQL數據庫基礎

發布時間:2020-07-31 11:19:36 來源:網絡 閱讀:516 作者:少年不在了 欄目:MySQL數據庫

1.1、數據庫模型

  數據庫由一批數據構成有序集合,這些數據被存在結構化的數據表中。數據表之間互相關聯,反應客觀事物間的本質聯系。數據庫系統提供對數據的安全控制和完整性控制。數據庫的發展大致劃分為幾個階段:人工管理階段、文件系統階段、數據庫系統階段、高級數據庫階段。其種類大概有3種:層次式數據庫、網絡式數據庫和關系式數據庫。

  文本數據庫缺陷:數據冗余和不一致,數據訪問困難,數據孤立,完整性問題,原子性問題并發訪問問題,安全性問題。

  數據庫系統的特性:數據管理獨立性;有效地完成數據存取;數據完整性和安全性;數據集中管理;并發存儲與故障恢復;減少應用程序開發時間。

  數據庫系統由硬件部分和軟件部分共同構成,硬件主要用于存儲數據庫中的數據,包括計算機、存儲設備等。軟件部分則主要包括DBMS、支持DBMS運行的操作系統,以及支持多種語言進行應用開發的訪問技術等。

 通用關系型數據庫架構:

一、MySQL數據庫基礎

1.2、數據類型與約束

  數據類型決定了數據在計算機中的存儲格式,代表不同的信息類型。常用的數據類型有:

字符:CHAR(n)  VARCHAR(n)  BINARY(n)  VARBINARY(n)  TEXT(n)  BLOB(n)

數值:

  整型:TINYINT  SMALLINT  MEDIUMINT  INT  BIGINT

  修飾符:UNSIGNED  NOT NULL

  浮點型:FLOAT  DOUBLE

日期時間:DATE  TIME  DATETIME STAMP

布爾

NULL

內置:ENUM, SET


字段修飾符:

NOT NULL    非空

NULL        空

UNSIGNED    無符號

DEFAULT     不適用于TEXT類型

PRIMARY KEY 主鍵

UNIQUE KEY  唯一鍵

AUTO_INCREMENT:自動增長類型的字段必須為主鍵或惟一鍵


域約束:數據類型約束

外鍵約束:引用完整性約束

主鍵約束:某字段能惟一標識此字段所屬的實體,并且不允許為空,一張表中只能有一個主鍵。

惟一性約束:每一行的某字段都不允許出現相同值,可以為空一張表中可以有多個

檢查性約束:用戶自定義有效取值范圍。

1.3、MySQL介紹

  MySQL是一個小型關系數據庫管理系統,與其他大型數據庫管理系統(Oracle、DB2)相比,MySQL規模小、功能有限,但是它體積小、速度快、成本低,且它提供的功能對稍微復雜的應用來說已經夠用。

  MySQL的主要運行流程如下所示:

一、MySQL數據庫基礎

  MySQL數據庫管理系統提供了許多命令行工具,這些工具可以用要管理MySQL服務器、對數據庫進行訪問控制、管理MySQL用戶以及數據庫備份和恢復工具等。

  服務器端工具程序:

mysqld:SQL后臺程序。該程序運行后,客戶端才能連接服務器來訪問數據庫。

mysqld_safe:服務器啟動腳本。

mysqld_multi:服務器啟動腳本,可以啟動或停止系統上安裝的多個服務器。

myisamchk:用來描述、檢查、優化和維護MyISAM表的實用工具。

mysqlbug:MySQL缺陷報告腳本。它可以用來向MySQL郵件系統發送缺陷報告。

mysql_install_db:該腳本用默認權限創建MySQL授權表。通常只是在系統首次安裝MySQL時執行一次。                

  客戶端工具程序:

myisampack:壓縮MyISAM表以產生更小的只讀表的工具

mysql:交互式輸入SQL語句或從文件以批處理模式執行它們的命令行工具

mysqlaccess:檢查訪問主機名、用戶名和數據庫組合的權限的腳本

mysqladmin:執行管理操作的客戶端程序,如創建或刪除數據庫,重載授權表,重新打開日志文件等,還可以用來檢查版本、進程、以及服務器的狀態信息

mysqlbinlog:從二進制日志讀取語句的工具,二進制日志文件中包含執行過的語句,可以用來幫助系統從崩潰中恢復

mysqlcheck:檢查、修復、分析以及優化表    

mysqldump:將mysql數據庫轉儲到一個文件                   

mysqlhotcopy:當服務器運行時,快速備份MyISAM表的工具

mysqlimport:使用LOAD DATA INFILE將文本文件導入相關表的庫戶程序 

mysqlshow:顯示數據庫、表、列以及索引相關信息的客戶程序

perror:顯示系統或MySQL錯誤代碼含義的工具


mysqladmin [options] command [arg] [command [arg]] ...

[options]:所有通行選項都可使用

command:

  create DB_NAME  創建數據庫drop DB_NAME刪除數據庫

  debug: 打開調試日志并記錄于error log中;

  status:顯示簡要狀態信息  (--sleep #: 間隔時長--count #: 顯示的批次)

  extended-status: 輸出mysqld的各狀態變量及其值,相當于執行mysql> SHOW GLOBAL STATUS

  variables: 輸出mysqld的各服務器變量

  flush-hosts: 清空主機相關的緩存:DNS解析緩存,此前因為連接錯誤次數過多而被拒絕訪問mysqld的主機列表

  flush-logs: 日志滾動,二進制日志和中繼日志

  refresh: 相當于同時使用flush-logs和flush-hosts

  flush-privileges、reload:刷新授權表

  flush-status: 重置狀態變量的值

  flush-tables: 關閉當前打開的表文件句柄

  flush-threads:清空線程緩存

  password: 修改當前用戶的密碼;

  ping: 測試服務器是否在線

  processlist:顯示mysql線程列表

  shutdown: 關閉mysqld進程;

  start-slave/stop-slave: 啟動/關閉從服務器線程

  kill: 殺死指定的線程,可以一次殺死多個,以逗號分隔,不能有多余空格

                                                       

1.4、源碼安裝MySQL5.5

安裝cmake軟件與依賴包:

[root@mylinux home]# yum install -y cmake ncurses-devel

創建用戶和組

[root@mylinux home]# groupadd mysql
[root@mylinux home]# useradd mysql -s /sbin/nologin -M -g mysql

解壓編譯MySQL

[root@mylinux home]#wget 
[root@mylinux home]#tar xf mysql-5.5.56.tar.gz
[root@mylinux home]#cd mysql-5.5.56
[root@mylinux home]#cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.56 \
-DMYSQL_DATADIR=/application/mysql-5.5.56/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.56/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
[root@mylinux home]#make 
[root@mylinux home]#make install
[root@mylinux application]# cd /application/
[root@mylinux application]# ln -s /application/mysql-5.5.56/ /application/mysql
[root@mylinux application]# mkdir /application/mysql/data -p
[root@mylinux application]# cd mysql
[root@mylinux mysql]#chown  -R root:mysql  /application/mysql
[root@mylinux mysql]#mdkir -p /application/mysql-5.5.56/tmp   
[root@mylinux mysql]#chmod -R 777 /application/mysql-5.5.56/tmp

選擇配置文件與環境變量

[root@mylinux mysql]#cp support-files/my-large.cnf  /etc/my.cnf             
[root@mylinux mysql]#vim /etc/profile.d/mysql.sh
   export PATH=/application/mysql/bin:$PATH

初始化數據庫

[root@mylinux mysql]# ./scripts/mysql_install_db  --user=mysql --data=/application/mysql/data/
Installing MySQL system tables...
170711 22:09:40 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
170711 22:09:40 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
170711 22:09:40 [Note] ./bin/mysqld (mysqld 5.5.56-log) starting as process 28738 ...
OK
Filling help tables...
170711 22:09:41 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
170711 22:09:41 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
170711 22:09:41 [Note] ./bin/mysqld (mysqld 5.5.56-log) starting as process 28745 ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h mylinux password 'new-password'

Alternatively you can run:
./bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

添加啟動腳本與設置開機啟動

[root@mylinux mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@mylinux mysql]# chmod +x /etc/init.d/mysqld 
[root@mylinux mysql]# chkconfig --add mysqld
[root@mylinux mysql]# chkconfig --level 2345 mysqld on
[root@mylinux mysql]# service mysqld start 
Starting MySQL.. SUCCESS!

mysql的配置文件:

 /etc/my.cnf或/etc/mysql/my.cnf-->$MYSQL_BASE/my.cnf -->--defaults-extra-file=my.cnf

-->~/ .my.cnf

使用配置文件的方式

  1、它依次查找每個需要查找的文件,結果是所有文件并集;

  2、如果某參數在多個文件中出現多次,后讀取的最終生效;

1.5、MySQL變量與作用域


服務器變量:@@變量名

  顯示:SELECT @@變量名

  設定:SET GLOBAL|SESSION 變量名='value'

設定服務器變量的值:(僅用于支持動態的變量)

  支持修改的服務器變量:

    動態變量:可以MySQL運行時修改,可即時修改

    靜態變量:于配置文件中修改其值,并重啟后方能生效;

  動態調整參數的生效方式:

    全局變量:服務器級別,修改之后僅對新建立的會話有效;

    會話變量:會話級別,僅對當前會話有效;會話建立時,從全局繼承各變量;

查看服務器變量:

mysql> SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE ''];
mysql> SELECT @@{GLOBAL|SESSION}.VARILABLE_NAME;
mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='NAME';
mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='NAME';

修改變量:默認僅管理員有權限修改全局變量

mysql> SET {GLOBAL|SESSION} VARIABLE_NAME='VALUE';

注意:無論是全局還是會話級別的動態變量修改,在重啟mysqld后都會失效;想永久有效,可定義在配置文件中的相應段中[mysqld]。

1.6、MySQL中文數據亂碼解決辦法

1)、向表中插入數據之前先設置客戶端的字符集與表保持一致

  SELECT CREATE TABLE tb_name \G   查看表的字符集
  set names 字符集;

2)、在SQL文件中指定字符集然后登陸MYSQL導入數據

  source tb_namq.sql;

3)、在SQL文件中指定字符集,通過mysql命令導入數據

  mysql  -uroot  -p’password’  tb_name<tb_name.sql

4)、指定mysql命令設置字符集

 mysql  -uroot -p’password’ --default-character-set=字符集 tb_name<tb_name.sql

5)、配置文件my.cnf中設置客戶端與服務器端字符集

6)、進入MySQL,可以查看各配置字符集是否一致

SHOW VARIABLES LIKE ‘character_set%’;



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通江县| 贵阳市| 伊通| 白水县| 嵩明县| 金堂县| 罗江县| 安义县| 佛学| 曲靖市| 宿迁市| 改则县| 醴陵市| 台湾省| 长春市| 义马市| 双柏县| 高雄县| 壶关县| 闸北区| 汉川市| 夏津县| 昌邑市| 九寨沟县| 墨玉县| 东乡族自治县| 宝兴县| 井冈山市| 昌乐县| 全南县| 巴彦县| 辽宁省| 基隆市| 新邵县| 秦皇岛市| 东阳市| 黄骅市| 墨脱县| 建宁县| 横山县| 东至县|