兩個版本mysql的安裝

安裝mysql方式有:源碼包、RPM包(比較老)和二進制包。php

安裝mysql 5.1.50:
mysql

一、安裝依賴包
c++

#yum -y install gccgcc-c++ ncurses ncurses-devel openssl openssl-devel libtool*sql


二、建立用戶:
vim

# groupadd mysqlbash

# useradd mysql –g mysql –s /sbin/nologin服務器


三、安裝Mysql socket

# tar –xvf mysql-5.1.50.tar.gzide

#cd mysql-5.1.50性能

# ./configure  '--prefix=/usr/local/services/mysql' '--localstatedir=/data/dbdata/' '--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock' '--with-charset=utf8' '--with-extra-charsets=complex' '--with-pthread' '--enable-thread-safe-client' '--with-ssl' '--with-client-ldflags=-all-static' '--with-mysqld-ldflags=-all-static' '--with-plugins=partition,federated,ndbcluster,innobase,csv,blackhole,myisam,innodb_plugin,heap,archive' '--enable-shared' '--enable-assembler'

# make && make install

解釋

--prefix 指定 Mysql 安裝目錄 (必須)

--localstatedir 指定Mysql數據存儲目錄(必須)

--with-unix-socket-path 執行socke存放位置(必須) 

--with-charset 指定默認字符集

--with-extra-charsets 能夠擴展複雜字符集

--with-pthread 強制使用pthread類庫

--enable-thread-safe-client 使用編譯客戶端;(讓客戶端支持線程的意思)

--with-ssl  啓用SSL的支持

--with-client-ldflags=-all-static 靜態編譯MySQL客戶端;(靜態連接提升13%性能)

--with-mysqld-ldflags=-all-static 靜態編譯MySQL服務器端;(靜態連接提升13%性能)

--with-plugins MySQL服務器端支持的存儲引擎

--enable-shared 共享變異模塊

--enable-assembler 使用匯編模式提升效率


四、初始化

# mkdir /data/dbdata/

# chown -R mysql:mysql /usr/local/ services/mysql

# chown -R mysql:mysql /data/dbdata/

/usr/local/services/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/services/mysql --datadir=/data/dbdata/

# cp /usr/local/services/mysql/share/mysql/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

# vim /etc/init.d/mysqld

basedir=/usr/local/services/mysql

datadir=/data/dbdata/


五、配置文件

#cp support-files/my-medium.cnf /etc/my.cnf

# vim /etc/my.cnf


六、啓動服務和設置環境變量

#:vim /etc/profile

MYSQL=/usr/local/services/mysql/bin

PATH=$PATH:$MYSQL

export PATH

#source /etc/profile

啓動服務

# /etc/init.d/mysqld start



Mysql5.6源碼包安裝:

yum install vim-enhanced cmake gcc gcc-c++ ncurses-devel bison make -y

groupadd -g 27 mysql

useradd -u 27 -g mysql -s /sbin/nologin  -M mysql 

mkdir /database

cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql5.6 -DMYSQL_DATADIR:PATH=/database/ -DSYSCONFDIR:PATH=/usr/local/mysql5.6/etc -DWITH_DEBUG:BOOL=on

cmake (-LH)生成 CMakeCache.txt  而後服務於make

編譯錯誤刪除CMakeCache.txt後從新編譯

man make cmake 的選項-L -D

mysqld d即爲組

[root@localhost mysql5.6]#mkdir  etc ;cp /etc/my.cnf etc/my.cnf

[mysqld]

basedir=/usr/local/mysql5.6

datadir=/database

socket=/var/run/mysqld/mysql5.6.sock

pid-file=/var/run/mysqld/mysql5.6.pid

user=mysql

port=3307 通常是330六、設置3307爲了與rpm等包共存(這次是編譯安裝)

上面存儲地自定義最好不要與其餘包目錄雜揉

[mysqld_safe]

log-error=/var/log/mysqld/mysqld.log

手工建立不存在的文件夾 /var/run/mysqld  /var/log/mysqld

[root@localhost mysql5.6]#chown -R mysql:mysql /usr/local/mysql5.6 /database /var/run/mysqld /var/log/mysqld

[root@localhost mysql5.6]# pwd

/usr/local/mysql5.6

[root@localhost mysql5.6]# vim scripts/mysql_install_db (啓動)

[root@localhost scripts]# #./mysql_install_db --basedir=/usr/local/mysql5.6/ --datadir=/database --user=mysql 

-bash: ./mysql_install_db: 權限不夠 (chmod +x mysql_install_db)

(上面生成下面文件)

[root@localhost scripts]# ls /database/  

ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test

[root@localhost support-files]# cp -v mysql.server /etc/rc.d/init.d/mysql5.6

"mysql.server" -> "/etc/rc.d/init.d/mysql5.6"

[root@localhost support-files]# vim /etc/init.d/mysql5.6 

conf=/usr/local/mysql5.6/etc/my.cnf  修改

[root@localhost support-files]# chkconfig  --add mysql5.6

[root@localhost support-files]# service mysql5.6 restart

ps aux |grep mysql   #(有root和mysql用戶啓動分別文件)

[root@localhost wan]# ls /var/run/mysqld/   #(服務啓動纔有)

mysql5.6.pid  mysql5.6.sock

[root@localhost ~]# /usr/local/mysql5.6/bin/mysql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)    # /tmp下面沒有

[root@localhost ~]# mysql -S /var/run/mysqld/mysql5.6.sock   # 指定,與rpm包不一樣

# #5.1客戶端登陸

# /usr/local/mysql5.6/bin/mysql -S /var/lib/mysqld/mysql.sock   # 5.6客戶端訪問5.1的rpm包   yum install mysql mysql-devel mysql-server php-mysql # service mysqld restart


貼上安裝mysql腳本:

#!/bin/bash
#./mysql.sh mysql-5.6.17.tar.gz
name1="$1"
name2=${name1/.tar.gz/}
if ! grep -qi "^mysql" /etc/group; then
groupadd -g 27 mysql
fi
if ! id mysql >/dev/null 2>&1; then
useradd -u 27 -g mysql -s /sbin/nologin -M mysql
fi
yum install -y cmake make gcc gcc-c++ ncurses-devel bison >/dev/null 2>&1
[ -d /usr/local/mysql5.6 ] && rm -rf /usr/local/mysql5.6
[ -d /database ] && rm -rf /database/* || mkdir /database
if [ -d "$name2" ]; then
[ -e "$name2/CMakeCache.txt" ] && rm -f "$name2/CMakeCache.txt"
else
tar xf "$name1"
fi
cd $name2
#cmake -LH 產生CMakeCache.txt, make就按這個cache文件來編譯
#man cmake
cmake \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql5.6 \
-DMYSQL_DATADIR:PATH=/database \
-DSYSCONFDIR:PATH=/usr/local/mysql5.6/etc \
-DWITH_DEBUG:BOOL=on
make
make install
mkdir /usr/local/mysql5.6/etc
cat <<! >/usr/local/mysql5.6/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql5.6
datadir=/database
socket=/var/run/mysqld/mysql5.6.sock
pid-file=/var/run/mysqld/mysql5.6.pid
port=3307
user=mysql
[mysqld_safe]
log-error=/var/log/mysqld/mysql5.6-error.log
!
[ -d /var/run/mysqld ] && rm -rf /var/run/mysqld/* || mkdir /var/run/mysqld
[ -d /var/log/mysqld ] && rm -rf /var/log/mysqld/* || mkdir /var/log/mysqld
chown -R mysql.mysql /usr/local/mysql5.6 /database /var/run/mysqld /var/log/mysqld
/usr/local/mysql5.6/scripts/mysql_install_db --basedir=/usr/local/mysql5.6 --datadir=/database --user=mysql
cp /usr/local/mysql5.6/support-files/mysql.server /etc/rc.d/init.d/mysql5.6
sed -i '/conf=/c conf=/usr/local/mysql5.6/etc/my.cnf' /etc/rc.d/init.d/mysql5.6
chkconfig --add mysql5.6
service mysql5.6 start
相關文章
相關標籤/搜索