首先以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.rpm和MySQL-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及以後系列產品的特殊性,其編譯方式和早期的第一條產品線的有所不同,這裏採用cmake或gmake方式的編譯安裝。即./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、解壓
4、初始化數據庫
5、啓動登錄
6、登錄驗證
mysql