首先以root身份登陸到Linux系統中,而後執行以下命令建立mysql用戶帳號:node
[root@oldboy~]# useradd -s /sbin/nologin -M mysqlmysql
rpm包的安裝方式很是簡單,這裏以el6平臺下的mysql-5.6.34版本爲例,首先,要到mysql官網上下載下來mysql安裝包:linux
MySQL-server-5.6.29-1.el6.x86_64.rpmsql
MySQL-client-5.6.29-1.el6.x86_64.rpm數據庫
MySQL-devel-5.6.29-1.el6.x86_64.rpmvim
MySQL-shared-compat-5.6.29-1.el6.x86_64.rpm服務器
MySQL-shared-5.6.29-1.el6.x86_64.rpmsocket
MySQL-test-5.6.29-1.el6.x86_64.rpmide
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
考慮到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
/u02/mysql/scripts/mysql_install_db --basedir=/u02/mysql --datadir=/u02/mysql/data --user=mysql
#<==兩個OK是初始化成功的標誌。
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
ls /u02/mysql/bin/mysql
echo 'export PATH=/u02/mysql/bin:$PATH' >>/etc/profile
tail -1 /etc/profile
source /etc/profile
mysql
exit
mysqladmin -u root password '123456'
mysql -p123456
一、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,自定義一些參數。。
二、在啓動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*
採用二進制免編譯方式安裝MySQL的方法和yum/rpm包安裝方式相似,適合各種MySQL產品系列,不須要複雜的編譯設置及編譯時間等待,直接解壓下載的軟件包,就至關於編譯方式的make install步驟完成了,而後只要進行初始化數據庫的操做,便可完成並啓動
一、下載:
wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.37-linux-glibc2.5-x86_64.tar.gz
二、安裝依賴包
useradd -s /sbin/nologin -M mysql
id mysql
yum install ncurses-devel libaio-devel -y
三、解壓
四、初始化數據庫
五、啓動登陸
六、登陸驗證
mysql