MySQL數據庫多種安裝方法

首先以root身份登錄到Linux系統中,然後執行如下命令創建mysql用戶賬號:

[root@oldboy~]# useradd -s /sbin/nologin -M mysql

1、rpm方式安裝MySQL

rpm包的安裝方式非常簡單,這裏以el6平臺下的mysql-5.6.34版本爲例,首先,要到mysql官網上下載下來mysql安裝包:

MySQL-server-5.6.29-1.el6.x86_64.rpm

MySQL-client-5.6.29-1.el6.x86_64.rpm

MySQL-devel-5.6.29-1.el6.x86_64.rpm

MySQL-shared-compat-5.6.29-1.el6.x86_64.rpm

MySQL-shared-5.6.29-1.el6.x86_64.rpm

MySQL-test-5.6.29-1.el6.x86_64.rpm

MySQL-embedded-5.6.29-1.el6.x86_64.rpm

一般來說,其中的MySQL-server-5.6.29-1.el6.x86_64.rpmMySQL-client-5.6.29-1.el6.x86_64.rpm這兩個軟件包是必須要安裝的,至於另外幾個軟件包,則可視實際需要進行安裝,不過一般建議一起安裝。

可以把這7個RPM包上傳到服務器的目錄中,然後執行如下rpm命令進行安裝:

·   查看是否存在舊的 mysql 服務(mysql-libs安裝更新後卸載,避免依賴報錯)

rpm -qa | grep mysql-libs

·   # 如果包存在,按照下列順序卸載

# 按照順序卸載

rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps

rpm -e MySQL-shared-advanced

rpm -e MySQL-test-advanced

rpm -e MySQL-embedded-advanced

rpm -e MySQL-server-advanced

rpm -e MySQL-devel-advanced

rpm -e MySQL-client-advanced


rpm -ivh MySQL-client-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-devel-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-shared-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-server-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-embedded-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-test-5.6.29-1.el6.x86_64.rpm

MySQL的默認安裝位置

/var/lib/mysql/               #數據庫目錄

/usr/share/mysql              #配置文件目錄

/usr/bin                     #相關命令目錄

/etc/init.d/mysql              #啓動腳本


在採用rpm包安裝方式時,必須要官方或第三方提供了現成的rpm軟件包,否則是無法使用該方式安裝的。另外,和直接採用yum的安裝方式相比,rpm包的安裝方式往往可以選擇更新的版本,但是rpm包安裝也有自身的問題,例如,無法滿足定製化安裝,比如,不能進行編譯參數、路徑等的更改。

*安裝tcmalloc

# s1

wget http://10.0.42.1:4201/soft/libunwind-1.1.tar.gz

tar zxvf libunwind-1.1.tar.gz

cd libunwind-1.1

CFLAGS=-fPIC ./configure  

make CFLAGS=-fPIC  

make CFLAGS=-fPIC install

/sbin/ldconfig

cd ..

# s2

wget http://10.0.42.1:4201/soft/gperftools-2.2.1.tar.gz

tar zxvf gperftools-2.2.1.tar.gz

cd gperftools-2.2.1

./configure

make

make install  

/sbin/ldconfig

cd ..

# s3

cat /etc/ld.so.conf.d/local_lib.conf

echo "/usr/local/lib" > /etc/ld.so.conf.d/local_lib.conf

/sbin/ldconfig


創建數據庫配置文件my.cnf

#修改數據庫server-id,每臺機器必須不同


mv -f my.cnf /etc/

rm -f /usr/my*.cnf


* 初始化應用數據目錄

mkdir -p /u02/mysql

rm -rf /u02/mysql/*

rm -rf /var/lib/mysql/*

mysql_install_db --defaults-file=/etc/my.cnf


chown -R mysql.mysql /u02/mysql

* 初始化配置

cat /root/.mysql_secret

7pkbuyfM1zYsqpDL

service mysql start


mysql -p

   GRANT ALL PRIVILEGES ON *.* TO 'ggs'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

   FLUSH PRIVILEGES;

   exit;


* 配置自動啓動

chkconfig mysql on



2、採用cmake方式編譯安裝MySQL

考慮到MySQL5.4.xx及以後系列產品的特殊性,其編譯方式和早期的第一條產品線的有所不同,這裏採用cmakegmake方式的編譯安裝。即./cmake;make;make install,生產場景的具體命令及參數爲:

yum install ncurses-devel libaio-devel -y

rpm -qa ncurses-devel libaio-devel


yum install cmake -y

rpm -qa cmake


useradd -s /sbin/nologin -M mysql


tar zxf mysql-5.6.37.tar.gz

cd mysql-5.6.37

cmake . -DCMAKE_INSTALL_PREFIX=/u02/mysql-5.6.37 \

-DMYSQL_DATADIR=/u02/mysql-5.6.37/data \

-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0

##注意:\前面一定要有空格


make

make install

ln -s /u02/mysql-5.6.37/ /u02/mysql


創建數據庫配置文件my.cnf

mv /etc/my.cnf /etc/my.cnf.bak

cp support-files/my-default.cnf /u02/mysql-5.6.34/my.cnf ##此步可以省略,my.cnf會在初始化時重新生成,,若不省略,則初始化時會生成my-new.cnf文件,my.cnf和my-new.cnf除了註釋以外是一致的

chown -R mysql.mysql /u02/mysql



初始化MySQL數據庫文件

/u02/mysql/scripts/mysql_install_db --basedir=/u02/mysql --datadir=/u02/mysql/data --user=mysql

#<==兩個OK是初始化成功的標誌。

配置並啓動MySQL數據庫

cp /srv/mysql-5.6.37/support-files/mysql.server /etc/init.d/mysqld

chmod 700 /etc/init.d/mysqld

2)啓動MySQL數據庫

mkdir /u02/mysql-5.6.37/tmp

chown -R mysql.mysql /u02/mysql*


/etc/init.d/mysqld start

chkconfig --add mysqld

chkconfig --list mysqld


將MySQL相關命令加入全局路徑

ls /u02/mysql/bin/mysql

echo 'export PATH=/u02/mysql/bin:$PATH' >>/etc/profile

tail -1 /etc/profile

source /etc/profile


登錄MySQL測試

mysql

exit

mysqladmin -u root password '123456'


mysql -p123456


MySQL排錯:

1、cmake編譯安裝時\前面漏加了空格,一直很順利,直到mysql啓動時:

[root@linux-mysql02 data]# /etc/init.d/mysqld start    

Starting MySQL.Logging to '/u02/mysql-5.6.37/data-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/mysql.sock-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_FEDERATED_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1-DWITH_ZLIB=bundled-DWITH_SSL=bundled-DENABLED_LOCAL_INFILE=1-DWITH_EMBEDDED_SERVER=1-DENABLE_DOWNLOADS=1-DWITH_DEBUG=0/linux-mysql02.err'.

 ERROR! The server quit without updating PID file (/u02/mysql-5.6.37/data-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/mysql.sock-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_FEDERATED_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1-DWITH_ZLIB=bundled-DWITH_SSL=bundled-DENABLED_LOCAL_INFILE=1-DWITH_EMBEDDED_SERVER=1-DENABLE_DOWNLOADS=1-DWITH_DEBUG=0/linux-mysql02.pid).

報錯!!!

解決方法:

[root@linux-mysql02 mysql-5.6.37]# vim /etc/init.d/mysqld 

.... 

datadir=/u02/mysql-5.6.37/data-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/mysql.sock-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_FEDERATED_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITHOUT_EXAMPLE_STORAGE_E

NGINE=1-DWITH_ZLIB=bundled-DWITH_SSL=bundled-DENABLED_LOCAL_INFILE=1-DWITH_EMBEDDED_SERVER=1-DENABLE_DOWNLOADS=1-DWITH_DEBUG=0

把上面的內容註釋掉,並在上面內容的下一行加入   

 datadir=/u02/mysql-5.6.37/data


原因:此時mysql默認是調用編譯自動生成的一些文件,/u02/mysql-5.6.37/support-files/mysql.server和/u02/mysql-5.6.37/my.cnf,所以解決方法一是修改啓動文件mysql.server,如上,而是修改my.cnf,自定義一些參數。。

2、在啓動mysql前沒有新建cmake編譯時指定的/u02/mysql-5.6.37/tmp/目錄,導致mysql.sock找不到目錄報錯:

[root@linux-mysql01 mysql-5.6.37]# /etc/init.d/mysqld start

Starting MySQL.Logging to '/u02/mysql-5.6.37/data/linux-mysql01.err'.

170808 21:14:04 mysqld_safe Directory '/u02/mysql-5.6.37/tmp' for UNIX socket file don't exists.

 ERROR! The server quit without updating PID file (/u02/mysql-5.6.37/data/linux-mysql01.pid).

解決方法:在啓動時新建/u02/mysql-5.6.37/tmp目錄,並授權mysql

mkdir /u02/mysql-5.6.37/tmp

chown -R mysql.mysql /u02/mysql*


3、採用二進制方式免編譯安裝MySQL

   採用二進制免編譯方式安裝MySQL的方法和yum/rpm包安裝方式類似,適合各類MySQL產品系列,不需要複雜的編譯設置及編譯時間等待,直接解壓下載的軟件包,就相當於編譯方式的make install步驟完成了,然後只要進行初始化數據庫的操作,即可完成並啓動

1、下載:

wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.37-linux-glibc2.5-x86_64.tar.gz

2、安裝依賴包

useradd -s /sbin/nologin -M mysql

id mysql

yum install ncurses-devel libaio-devel -y

3、解壓

tar xf mysql-5.6.37-linux-glibc2.5-x86_64.tar.gz 
mkdir -p /u02
mv mysql-5.6.37-linux-glibc2.5-x86_64 /u02/mysql-5.6.37
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /u02/mysql-5.6.37/
cd /u02/mysql-5.6.37/


4、初始化數據庫

cp support-files/my-default.cnf /etc/my.cnf
./scripts/mysql_install_db --basedir=/u02/mysql-5.6.37/ --datadir=/u02/mysql-5.6.37/data/ --user=mysql
sed -i 's#/usr/local/mysql#/u02/mysql-5.6.37#g' /u02/mysql-5.6.37/bin/mysqld_safe

5、啓動登錄

/u02/mysql-5.6.37//bin/mysqld_safe &
lsof -i :3306
PATH="/u02/mysql-5.6.37/bin/:$PATH"

6、登錄驗證
 mysql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章