一.系統初始化
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/" /etc/sysconfig/selinux
service iptables stop
chkconfig iptables off
二. 安裝mysql
yum install -y autoconf automake cmake gcc-c++ libgcrypt libtool libxml2 ncurses-devel zlib perl-Data-Dumperpython-devel openssl openssl-devel bison-devel #安裝工具包和依賴包
wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/mysql-5.6.36.tar.gz #下載mysql5.6源碼包
useradd -s /sbin/nologin -M mysql #創建mysql系統用戶
mkdir /apps/data -p #創建存放數據庫的文件夾
mkdir /apps/log
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/apps/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
三.配置mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /apps/data
chown -R mysql:mysql /apps/log
cd /usr/local/mysql/
cp support-files/mysql.server /etc/init.d/mysqld
修改/etc/my.cnf
[mysqld]
user=mysql
port = 3306
basedir = /usr/local/mysql
datadir =/apps/data
log_bin=/apps/data/log/mysql-bin
log-error=/apps/data/log/error.log
pid-file=/usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
lower_case_table_names=1
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8_unicode_ci
init_connect = 'SET NAMES utf8'
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
具體生產配置參考:my.cnf
chkconfig mysqld on
#執行初始化配置腳本
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/apps/data --user=mysql
#service mysqld start
mysql命令加入環境變量
echo "export PATH=\$PATH:/usr/local/mysql/bin " >> /etc/profile
source /etc/profile
mysql 設置密碼
mysqladmin -uroot password '123456'
mysql安全配置向導
如下:
# mysql_secure_installation
Enter current password for root (enter for none):
新安裝的mysql無root密碼,按Enter即可
Set root password? [Y/n] Y
設置root密碼
Remove anonymous users? [Y/n] Y
刪除匿名用戶
Disallow root login remotely? [Y/n] Y
取消root遠程登錄
Remove test database and access to it? [Y/n] Y
刪除test數據庫
Reload privilege tables now? [Y/n] Y
刷新權限
或:
進入mysql客戶端
mysql> use mysql;
#刪除匿名用戶
mysql> delete from user where user="";
#刪除空密碼的root
mysql> delete from user where user='root' and password="";
#取消root遠程登錄
mysql> delete from user where user='root' and host="%";
#刪除test數據庫
mysql> drop database test;
#刷新權限
mysql> FLUSH PRIVILEGES;
重設密碼 mysqld_safe --skip-grant-tables & 進入數據庫設置密碼。