二、mysql資料庫的安裝
阿新 • • 發佈:2020-11-02
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 connectionid 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)]>
①安裝依賴包
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,並把許可權更改為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