11.1 LAMP架構介紹
Apache(httpd):web服務軟件php
Mysql:數據庫,存儲數據的mysql
PHP:編程語言linux
Apache不能直接和Mysql相連c++
11.2 MySQL、MariaDB介紹web
11.3/11.4/11.5 MySQL安裝sql
rpm包安裝有一個缺點就是不能定義你所安裝的路徑,它默認的就是安裝在user下面。shell
二進制免編譯包能夠本身指定數據庫
LAMP 是 Linux Apach MySQL PHP 的縮寫,其實就是把 apach,MySQL以及PHP安裝在LINUX系統上,組成一個環境來運行PHP的腳本語言。編程
Apache是最經常使用的WEB服務軟件,而MySQL 是比較小型的數據庫軟件,這兩個軟件以及PHP均可以安裝到Windows機器上。vim
平時安裝的MySQL 都是源碼包安裝的,可是編譯時間須要很長時間,建議安裝二進制免編譯包。建議下載一個5.6版本。mirrors.souhu.com
初始化mysql
#uname -i 【查看CentOS的位數,選擇相應的MySQL進行下載。uname -a 也能夠】
#cd /usr/local/src 【建議的默認源碼包下載路徑】
#wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-i686-glibc2.5-x86_64tar.gz
#tar
#useradd mysql 【增長一個用戶的,不建立家目錄,自定義shell,/sbin/nologin】
#mv mysql-5.1.72-linux-i686-glibc23 /usr/local/mysql 【移動而且重命名,無需編譯】
#cd /usr/local/mysql
#vim INSTALL-BINARY 【查看readme 或者 install等幫助文檔】
#mkdir -p /data/mysql 【增長數據庫安裝目錄】
#chown -R mysql /data/mysql 【更改權限】
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 【執行初始化,指定數據庫所屬主,定以數據庫安裝目錄,建議放置到大的分區上。】
配置 mysql
# cp support-files/my-large.cnf /etc/my.cnf 【拷貝配置文件,可能會提示覆蓋,覆蓋便可】
#cat /etc/my.cnf
# The MySQL server
[mysqld]
port = 3306 【監聽端口,用來 通信】
socket = /tmp/mysql.sock 【socket,linux獨有的通信功能】
skip-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
# Replication Master Server (default) # binary logging is required for replication
log-bin=mysql-bin 【mysql在查詢插入刪除更新數據的時候,會記錄日誌】
# cp support-files/mysql.server /etc/init.d/mysqld 【拷貝啓動腳本並修改屬性】 # chmod 755 /etc/init.d/mysqld # vim !$
basedir=/usr/local/mysql
datadir=/data/mysql #錯誤日誌所在
# chkconfig --add mysqld 【增長mysqld服務】 # chkconfig mysqld on 【啓動mysqld】 # service mysqld start # /etc/init.d/mysqld status 【查看mysqld的啓動狀況,也能夠用ps aux 查看,也能夠用 netstat -lnp 查看port】
常見錯誤以及疑問:
一、初始化數據庫的時候報錯 error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
是由於libstdc++.so.5沒有裝
yum install -y compat-libstdc++-33.x86_64
二、創建mysql用戶的目的是,在以後啓動服務,初始化數據的時候,都要用到這個用戶
三、若是啓動不了,請到 /data/mysql/ 下查看錯誤日誌,這個日誌一般是主機名.err. 檢查mysql是否啓動的命令爲:
[root@localhost mysql]# ps aux |grep mysqld
四、怎麼去看這個安裝包是否是免編譯的?
到目前爲止,也只有mysql會有這種包,會以這樣的方式安裝。 看它是否是二進制,看它的名字是否是帶 glibc 和 i586 x86_64 這些字眼,源碼包是不會帶這些的。二進制的包不須要configure make。
關於安裝包,咱們要遵循一個規則,就是要到官網去下載包,下載以前你先看看它是針對平臺的包仍是源碼包,都是有標記和說明的。 固然,下載下來的包,解壓後都會有一個安裝說明文件,一般叫作readme或者INSTALL,看看安裝過程,有make的 確定是源碼包了。 再一個就是經過名稱來看,規範的包,都會在名字上去標記它是什麼包,源碼包名字不會加任何修飾,好比mysql的源碼包,就是mysql-版本號.tar.gz 而免編譯的包,都會標記有i686或者x86_64字眼。mysql-5.1.53.tar.gz 這樣的就是源碼包。
五、初始化的時候....
[root@centos mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
linux是最小化安裝的,這裏報錯缺乏共享庫文件,不要緊,咱們安裝一下就能夠了。
[root@centos mysql]# yum install -y libaio
六、銘哥,若是我想卸載mysql,是否是直接刪除用戶,刪除init.d下的啓動服務,用chkconfig刪除服務再刪除目錄,就能夠卸載mysql了?還有須要注意的嗎?還有沒有更好的方法呢? 若是是卸載我們的方法安裝的mysql,具體作法是:
-
停掉服務
-
刪除/usr/local/mysql
-
刪除/data/mysql
-
刪除/etc/my.cnf
-
刪除啓動腳本
-
刪除mysql用戶
七、這個用包安裝,和用命令yum install mysql; yum -y install mysql-server ;yum install mysql-devel。這兩個有什麼區別?
區別在於mysql mysql-server mysql-devel 包的區別。
mysql包就是客戶端程序,咱們平時用命令mysql -u -h 鏈接server 的時候,就用這個包
mysql-server 是服務端程序,跑服務的話要安裝這個包
mysql-devel 這個是開發庫相關的包,安裝php的時候,要依賴mysql,就得有這個開發庫支持
八、my-large.cnf my-huge.cnf my-medium.cnf my-small.cnf 這幾個文件有什麼區別?爲何選擇my-large.cnf
文件區別在於,緩存相關的一些參數不一樣,好比large裏面緩存配置參數就比較大。
九、我以前有lamp服務,此次練習安裝把以前的卸載了 運行 cp my-large.cnf /etc/my.cnf cp mysql.server /etc/init.d/mysqld這倆命令的時候, 報錯:cp: not writing through dangling symlink `/etc/init.d/mysqld' 這是什麼緣由?
先刪除/etc/init.d/mysqld 再拷貝
這章須要好好弄明白,週日在複習