1. 程式人生 > 實用技巧 >二、mysql資料庫的安裝

二、mysql資料庫的安裝

1、yum安裝

centos6:
yum install -y mysql-server mysql mysql-devel
centos7:
yum install -y mariadb mariadb-server mariadb-devel

以centos7為例:

yum install -y mariadb mariadb-server mariadb-devel

檢查是否安裝成功

[root@web04 ~]# rpm -qa mariadb mariadb-server mariadb-devel
mariadb-5.5.64-1.el7.x86_64
mariadb-devel-5.5
.64-1.el7.x86_64 mariadb-server-5.5.64-1.el7.x86_64

啟動mariadb

systemctl start mariadb
[root@web04 ~]# systemctl start mariadb 
[root@web04 ~]# ps -ef |grep mysql
mysql     50485      1  0 19:55 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql     50647  50485  4 19:55 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir
=/usr/lib64mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock root 50682 50370 0 19:55 pts/0 00:00:00 grep --color=auto mysql

登陸mysql

[root@web04 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection 
id is 2 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

2、原始碼安裝mysql-5.5

①安裝依賴包

yum install -y gcc c ncurses-devel libaio bison gcc-c++ git cmake  ncurses-devel ncurses 

②建立mysql的虛擬使用者

useradd -s /sbin/nologin -M mysql

③建立原始碼包存放目錄,並下載mysql5.5

mkdir -p /server/tools
cd /server/tools
wget -c http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.62.tar.gz

④解壓原始碼包並編譯安裝

tar -xf mysql-5.5.62.tar.gz
cd mysql-5.5.62
cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0


make  && make install

⑤複製配置檔案

#複製主配置檔案my.cnf到/usr/local/mysql55目錄(mysql預設讀取/etc/my.cnf,可以直接複製到/etc/my.cnf)
cd /server/tools/mysql-5.5.62
\cp support-files/my-large.cnf /usr/local/mysql55/
#複製啟動檔案到/etc/init.d/mysqld
\cp support-files/mysql.server /etc/init.d/mysqld
#給啟動檔案新增執行許可權
chmod +x /etc/init.d/mysqld
#/etc/init.d/mysqld啟動檔案載入的conf檔案的預設路徑為/etc/my.cnf,更改為/usr/local/mysql55/my.cnf
sed -i 's#conf=/etc/my.cnf#conf=/usr/local/mysql55/my.cnf#g' /etc/init.d/mysqld

⑥建立mysql的資料目錄,把屬主和屬組更改為mysql

mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql

⑦初始化mysql資料庫

/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql55

⑧啟動mysqld

/etc/init.d/mysqld start

mysql資料庫啟動報錯

[root@web04 mysql-5.5.62]# /etc/init.d/mysqld start
Starting MySQL.191221 20:27:25 mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/var/lib/mysql/web04.pid).
[root@web04 mysql-5.5.62]# 

缺少/var/log/mariadb/mariadb.log

處理方法:建立/var/log/mariadb/mariadb.log,並把許可權更改為mysql

mkdir -p /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
chown -R mysql.mysql /var/log/mariadb/mariadb.log

啟動成功

[root@web04 mysql-5.5.62]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 
[root@web04 mysql-5.5.62]# ps -ef |grep mysql
root      62491      1  0 20:30 pts/0    00:00:00 /bin/sh /usr/local/mysql55/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/web04.pid
mysql     62838  62491  2 20:30 pts/0    00:00:00 /usr/local/mysql55/bin/mysqld --basedir=/usr/local/mysql55 --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql55/lib/plugin --user=mysql --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/lib/mysql/web04.pid --socket=/tmp/mysql.sock --port=3306
root      62860  50370  0 20:30 pts/0    00:00:00 grep --color=auto mysql
[root@web04 mysql-5.5.62]# 

⑨mysql資料庫的命令優化

ln -s /usr/local/mysql55/bin/* /usr/bin/
或者
echo 'export PATH=/usr/local/mysql55/bin:$PATH' >>/etc/profile
source /etc/profile