MySQL數據庫概念
(1) MySQL是關係型數據庫,各種關係依賴。特點:數據以表格的形式存儲,由無數的表,組成一個庫,每張表包含無數的行和列,每行記錄數據的真實內容,每列記錄數據內容的真實數據段
(2)關係型數據庫,用於存放用戶信息、員工姓名、銀行卡信息、工資單、WEB網站訂單、購物車信息、考試成績等;
(3) MySQL數據庫不是單獨存在的,位置在web後端,用戶通過web網站交互,產生的數據,存儲到MySQL中,典型架構LAMP LNMP tomcat +MySQL Java+MySQL
(4) MySQL 分爲社區版和商業版 ,MySQL社區版是免費的,Mariadb是免費開源的,Centos7默認安裝的是Mariadb
MySQL數據庫原理
(1) MySQL 數據庫在運行時,會選擇工作引擎,常見的工作引擎有Myisam, Innodb
(2) Myisam 強調的是數據庫的性能,其執行速度比Innodb類型更快,但不提供事物支持,不提供外鍵。如果是大量的查詢工作,Myissam性能更好些
(3)Innondb提供事物支持,外部鍵,行級鎖等高級功能 ,如果是執行插入,更新操作,出於性能方面的考慮,選擇Innondb。
MySQL數據庫安裝配置
1> 軟件安裝的2種方式,二進制方式,源代碼方式
2> rpm包結尾的二進制文件,rpm,yum直接安裝
rpm -ivh mysql-server-xxx.rpm mysql-devel-xxx.rpm xxx;(不推薦)
yum install mysql mysql-server mysql-devel -y
3>源碼安裝方式,基於./configure make make install 但從MySQL5.5X開始後,MySQL預編譯變成了cmkae,不再支持.configure
4> 實戰源碼安裝MySQL
(1) 安裝編譯環境
yum install ncurses-devel perl gcc gcc-c++ wget cmake nurses make
(2) 下載MySQL源碼包 wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
(3) tar -xzvf mysql-5.5.20.tar.gz
(4) 進入mysql -5.5.20目錄裏,執行
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make
make install
(5) 將MySQL設置爲系統服務
cd /usr/local/mysql
cp support-files /my-large.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld
useradd mysql
mkdir -p /data/mysql
/usr/local/mysql/scripts/mysql_install_db --user=mysql--datadir=/data/mysql/ --basedir=/usr/local/mysql/ 對mysql進行初始化
(6) 啓動MySQL數據庫
/etc/init.d/mysqld start
MySQL報錯解決方案:
1> 檢查MySQL數據庫是否存在或者數據目錄是否完整
2> 檢查selinux是否關閉,生產環境建議關閉
3> 檢查MySQL服務器的磁盤空間,查看MySQL錯誤日誌信息
4> 檢查MySQL數據mysql用戶是否有權限
5> 檢查MySQL是否已經啓動 ps -ef | grep mysql,3306已經存在
6> 檢查MySQL配置目錄是否存在/etc/my.cnf
7> 確保my.cnf文件中,[mysqld]字段上存在datadir=/data/mysql
(7) 進入數據庫
/usr/local/mysql/bin/mysql
SQL語句學習
(1) show databases; 查看所有的數據庫
(2) create database jfedu; 創建jfedu數據庫
(3) use jfedu; 進入jfedu數據庫
(4) show tables; 查看數據庫中的表
(5) create table t1(id vchar(10),name vchar(20)); 創建t1這個表,這個表上有id和name2個字段
(6) insert into t1 values (20,'zhangsan'); 向t1這張表中插入數據
(7)
seletct * from t1; 查看t1這張表的內容;
select name from t1; 查看t1這張表name字段內容
select name from t1 where id=2; 查看t1這張表id=2的name字段
(8) desc user; 查看錶的字段
(9) select host,user,password from mysql.user; 不進入user這張表中,也可以user表內容
(10) mysql -e "select host,user,password from mysql.user"; 在mysql命令行外也可以查看user表內容
(11) update test001 set age=26 and where name='wanger'and id=2;
註釋:
更新test001這張表 把name=‘wanger’id=2 這個字段上,age設置爲26
(12) select count(*)from test001; 查看錶有多少字段
(13) flush privileges; 刷新權限
(14) delete from t1 清空表的內容
(15) drop table t1; 刪除表
(16) drop database jfedu; 刪除數據庫
(17) show engines; 查看數據庫默認的引擎