Mysql(關係型數據庫管理系統)
MySQL是一個關係型數據庫管理系統由瑞典MySQL AB 公司開發,目前屬於 Oracle旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS(Relational Database Management System,關係數據庫管理系統) 應用軟件之一。
MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。MySQL 軟件採用了雙授權政策,分爲社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作爲網站數據庫。
由於其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。
系統特性
1.使用 C和 C++編寫,並使用了多種編譯器進行測試,保證了源代碼的可移植性。
2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統。
3.爲多種編程語言提供了 API。這些編程語言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4.支持多線程,充分利用 CPU 資源。
5.優化的 SQL查詢算法,有效地提高查詢速度。
6.既能夠作爲一個單獨的應用程序應用在客戶端服務器網絡環境中,也能夠作爲一個庫而嵌入到其他的軟件中。
7.提供多語言支持,常見的編碼如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作數據表名和數據列名。
8.提供 TCP/IP、ODBC 和 JDBC等多種數據庫連接途徑。
9.提供用於管理、檢查、優化數據庫操作的管理工具。
10.支持大型的數據庫。可以處理擁有上千萬條記錄的大型數據庫。
11.支持多種存儲引擎。
12.MySQL 是開源的,所以你不需要支付額外的費用。
13.MySQL 使用標準的 SQL數據語言形式。
14.MySQL 對 PHP 有很好的支持,PHP是比較流行的 Web 開發語言。
15.MySQL是可以定製的,採用了 GPL協議,你可以修改源碼來開發自己的 MySQL 系統。
16.在線 DDL/更改功能,數據架構支持動態應用程序和開發人員靈活性(5.6新增)
17.複製全局事務標識,可支持自我修復式集羣(5.6新增)
18.複製無崩潰從機,可提高可用性(5.6新增)
19.複製多線程從機,可提高性能(5.6新增)
20.3倍更快的性能(5.7 [3] 新增)
21.新的優化器(5.7新增)
22.原生JSON支持(5.7新增)
23.多源複製(5.7新增)
24.GIS的空間擴展 [4] (5.7新增)
報錯解決
1.Starting MySQL.Manager of pid-file quit without updating fi[失敗]
關於這個錯誤原因有很多,最大的可能是沒有創建測試數據庫,可以用/usr/local/mysql/scripts/mysql_install_db –user=mysql命令進行創建;另外一個原因可能是權限設置問題,需要賦予mysql的data權限,可以用chmod -R 命令。
2.FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults If you are using a binary release,you must run this script from
within the directory the archive extracted into. If you compiled
MySQL yourself you must run ‘make install’ first.
這個錯誤,是沒有指明mysql的data路徑導致的,可以很簡單的進行解決:
vim /etc/my.cnf
在[mysqld] 後面加上路徑:
basedir = /usr/local/mysql
datadir =/opt/data;
3.-bash: mysql: command not found
用mysql命令進行登陸mysql報錯,原因是沒有設置環境變量,需要設置,或者進入到bin目錄進行登陸cd /usr/local/mysql/bin
mysql -u root
4.ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server
用mysql遠程工具鏈接數據庫報錯,這個錯誤原因是沒有開放遠程鏈接功能,可以在mysql裏面輸入如下命令進行解決:GRANT ALL PRIVILEGES ON . TO ’root‘@’%’ IDENTIFIED BY ’password’ WITH GRANT OPTION
顯示命令
1.顯示數據庫列表。
show databases;
剛開始時才兩個數據庫:mysql 和 test。mysql 庫很重要它裏面有 MySQL 的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2.顯示庫中的數據表:
use mysql; //打開庫,
show tables;
3.顯示數據表的結構:
describe 表名;
4.建庫:
create database 庫名;
5.建表:
use 庫名;
create table 表名 (字段設定列表);
6.刪庫和刪表:
drop database 庫名;
drop table 表名;
7.將表中記錄清空:
delete from 表名;
8.顯示錶中的記錄:
select * from 表名;
9.顯示最後一個執行的語句所產生的錯誤、警告和通知:
show warnings;
10.只顯示最後一個執行語句所產生的錯誤:
show errors;
備份數據庫
(命令在DOS的\mysql\bin目錄下執行)
mysqldump --opt school>school.bbb
註釋:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
自動備份 mysql 數據庫的方法
1、先是建立批處理文件,將以下代碼另存爲.bat文件,文件名最好爲英文。注意下面的路徑,以筆者自己的數據庫爲例,數據庫安裝在D盤下mysql\mysql下,備份位置在F:\beifen,後面的代碼是日期。
@echo off
color 0D
MODE con: COLS=71 LINES=25
title mysql數據庫自動備份腳本(任務計劃)
set sou_dir=“D:\mysql\Mysql\data”
set obj_dir=F:\beifen%date:~0,10%
net stop mysql
md %obj_dir%
xcopy /e /y %sou_dir% %obj_dir%
net start mysql
@echo off&setlocal enabledelayedexpansion
call:D,30
echo. 30天前的日期爲:%D%
echo. 刪除30天以前備份…
if exist F:\beifen%D% rd /s /q F:\beifen%D%
echo 自動備份完成,程序將自動退出…
還原導入
還原/導入數據庫,導入過程,進入 mysql 數據庫控制檯,如 mysql -u root -p
mysql>use 數據庫
然後使用 source 命令,後面參數爲腳本文件(如這裏用到的.sql)
mysql>source d:\dbname.sql
如果提示找不到文件,輸完 source 後,可以用鼠標把文件直接拖進命令行窗口
啓動跟蹤
mysqld --debug
關閉服務器
mysqladmin -u root shutdown
啓動服務
mysqld --console