q:如何判斷乙個linux系統具備安裝mysql的條件?
a:1、linux網路已經配置完成
預設閘道器、
主機名字
/etc/hosts:訪問這個資料庫的應用的ip位址和主機名字也要新增到hosts檔案中,主從伺服器解析也要新增到hosts檔案
/etc/resolv.conf:確認裡面的nameserver能夠使用
2、/var/log/messages日誌檔案
3、配置yum源:local
注意:輕易不要使用網際網路yum,原因是容易出現版本問題
4、刪除舊版本的mysql:
# yum remove mysql*
5、selinux一定要關閉:
# getenforce //確保是disabled,如果是修改的最好是重啟一下系統。
6、防火牆最好也是關閉:
# iptables -l
7、準備好mysql資料庫軟體和mysql資料檔案所在位置
mysql資料庫檔案所在的位置一定要足夠的空間,且效能要求是最好的。
防火牆對資料庫的影響:防火牆會對長時間沒有反應的連線給斷開掉,是底層強行斷掉的,所以沒有完整的釋放tcp連線,如果原來是有500連線,因為應用和伺服器的連線斷掉了進行重新連線,500連線再連上來,伺服器就容易夯住。
一、如何安裝mysql
1、tar包的方式,編譯安裝
安裝者自行安裝定義,安裝在哪就是哪兒。
2、rpm的方式,yum安裝:yum localinstall
1、rpm -ql 軟體包的名字 #檢視軟體安裝的位置
軟體目錄:/usr
對於乙個軟體來說:
1>bin(存放一些命令)
2>lib、lib64
3>share(放置類似於軟體的一些模板)
2、rpm -qc 軟體包的名字 #檢視軟體的配置檔案的位置
shell> vim /etc/my.cnf[mysqld]
basedir=/usr/local/mysql
datadir=/mydata
port=3306
server_id=1
socket=/var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/mydata/mysqld.pid
[client]
socket=/var/lib/mysql/mysql.sock
basedir:mysql軟體安裝目錄
datadir:mysql資料庫目錄
如果是要清理乙個mysql資料庫,然後重新初始化,就要保證該目錄為空rm -rf *,當然這個是很危險的,生產庫輕易別這麼幹。
二、mysql初始化
1、mysqld_safe的方式初始化啟動
# mysqld_safe --help
# mysqld_safe --defaults-file=/etc/my.cnf &
初始化完成以後,資料庫預設是啟動狀態---(rpm安裝)
補充:mysqld --initialize、mysql_install_db初始化方式
2、判斷例項啟動
以下1、2、3一起確認資料庫的啟動
1、netstat -tulnp|grep 3306
2、資料庫啟動了會有乙個mysql.pid檔案
# ll /mydata/mysqld.pid
-rw-r----- 1 mysql mysql 5 apr 21 10:41 /mydata/mysqld.pid
3、資料庫埠開了會有乙個mysql.sock檔案,代表乙個資料庫例項
# ll /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 apr 21 10:41 /var/lib/mysql/mysql.sock
注意:如果是使用mysqld_safe的方式啟動mysql服務,通過ps -ef | grep mysql,我們會發現mysql有兩個程序,乙個是mysqld的程序,乙個是mysqld_safe的程序,前者是後者的子程序,是因為mysqld_safe啟動本質是呼叫的mysqld,這是mysql服務啟動的乙個安全保護機制。如果只是用mysqld啟動,那麼os上就只能看見乙個程序。
如果在my.cnf配置檔案裡沒有指定日誌檔案的目錄的話,那麼初始化完了就會在datadir目錄下面生成乙個.err檔案,這個檔案就是mysql的錯誤日誌檔案。
3、初始化完後
1、初始化成功以後,在datadir下面至少會有如下目錄
# ll |grep ^d
drwxr-x--- 2 mysql mysql 4096 apr 9 01:09 mysql
drwxr-x--- 2 mysql mysql 4096 feb 17 21:43 performance_schema
drwxr-x--- 2 mysql mysql 12288 feb 17 21:43 sys
2、如果是初始化失敗的話,也就只有ibdata1、ib_logfile0、ib_logfile1檔案。
三、mysql啟動
1、啟動過程
1、找my.cnf檔案(配置檔案),最好啟動的時候手工指定配置檔案
[root@localhost ~]# mysql --help | grep my.cnf
order of preference, my.cnf, $mysql_tcp_port,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
順序配置檔案,如果後面的配置檔案尋找成功,則配置檔案內容會覆蓋前面的配置
所以:mysqld_safe --defaults-file=/etc/my.cnf &
2、datadir,找相應的資料庫進行啟動
3、初始化引數指定啟動資源分配
2、排錯分析
1、引數檔案問題
1、cat 引數檔案、找到datadir
2、初步看一下引數檔案中的引數是否異常
3、通過ll引數檔案的最近修改時間
2、切換到datadir下
1、判斷許可權
2、基本檔案及目錄
ibdata、
logfile、
mysql/、
performance_schema/
3、空間是否滿了
3、errorlog
1、關注時間點
2、error內容
3、mysql有乙個地方需要注意
datadir指向了乙個不存在資料庫的位置,同時對這個目錄有mysql許可權,這樣就很容易初始化乙個新的資料庫。
mysql 使用例項 MySQL使用例項
誤刪除了vps上的phpmyadmin,不得已翻閱了半天mysql指南,以下是一些mysql使用例項 連線管理 鏈結資料庫 mysql h localhost u root p 退出資料庫 mysql quit 資料庫管理 檢視資料庫 mysql show databases 建立資料庫 mysql...
mysql 重啟例項 mysql加快重啟例項的速度
有時候由於業務維護視窗比較短的原因,需要快速的重啟mysql例項 1 set global innodb max dirty pages pct 0 2 觀察 root mysql01 mysqladmin ext grep dirty innodb buffer pool pages dirty ...
php和mysql相連例項 mysql例項與連線
滄海一幻覺 mysql的最大連線數max connections預設151,php與其建立的資料庫連線都是真正的tcp連線,在php使用持久連線下執行下列操作可見 sudo netstat antp head n2 sudo netstat antp egrep php fpm mysqld gre...