CentOS 下 MySQL 5.7 編譯安裝

MySQL5.7主要特性:

1—更好的性能:對於多核CPU、固態硬盤、鎖有着更好的優化,每秒100W QPS已再也不是MySQL的追求,下個版本可否上200W QPS纔是吾等用戶更關心的mysql

2—更好的InnoDB存儲引擎c++

3—更爲健壯的複製功能:複製帶來了數據徹底不丟失的方案,傳統金融客戶也能夠選擇使用MySQL數據庫。此外,GTID在線平滑升級也變得可能sql

4—更好的優化器:優化器代碼重構的意義將在這個版本及之後的版本中帶來巨大的改進,Oracle官方正在解決MySQL以前最大的難題數據庫

5—原生JSON類型的支持vim

6—更好的地理信息服務支持:InnoDB原生支持地理位置類型,支持GeoJSON,GeoHash特性bash

7—新增sys庫:之後這會是DBA訪問最頻繁的庫微信

##安裝依賴包 yum -y install gcc gcc-c++ ncurses ncurses-devel cmake ##下載相應源碼包 cd /home/quant_group/mysql #cd /your/download/path wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11.tar.gzide

文件目錄建立

mkdir -p /home/quant_group/mysql/3306/data
mkdir -p /home/quant_group/mysql/3306/tmp
mkdir -p /home/quant_group/mysql/3306/log

咱們在這裏是把mysql安裝到/home目錄下,沒有安裝到/下,防止系統出問題丟失數據

##添加mysql用戶 useradd -M -s /sbin/nologin mysql ##預編譯 tar xzf boost_1_59_0.tar.gz tar xzf mysql-5.7.11.tar.gz cd mysql-5.7.11 cmake -DCMAKE_INSTALL_PREFIX=/home/quant_group/mysql/3306
-DMYSQL_DATADIR=/home/quant_group/mysql/3306/data
-DWITH_BOOST=/home/quant_group/mysql/boost_1_59_0
-DSYSCONFDIR=/home/quant_group/mysql
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
-DENABLE_DTRACE=0
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DWITH_EMBEDDED_SERVER=1 ##編譯安裝 make make install ##啓動腳本,設置開機自啓動 /bin/cp /home/quant_group/mysql/3306/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on ##/etc/my.cnf,僅供參考 [mysqld] basedir = /home/quant_group/mysql/3306 datadir = /home/quant_group/mysql/3306/data tmpdir = /home/quant_group/mysql/3306/tmp pid-file = /home/quant_group/mysql/3306/data/my.pid port = 3306性能

default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2

explicit_defaults_for_timestamp = true
character-set-client-handshake = FALSE
character_set_server = utf8
skip-name-resolve
max_connect_errors = 1000000
max_allowed_packet = 1G

connect_timeout = 3600
wait_timeout = 3600
interactive_timeout = 3600
innodb_lock_wait_timeout = 10
slave-skip-errors  = 1032,1062
log-error = /home/quant_group/mysql/3306/log/error.log

slow_query_log = on
slow_query_log_file = /home/quant_group/mysql/3306/log/slow-query-log.log
long_query_time = 1
log-queries-not-using-indexes
log-slow-admin-statements
log-slow-slave-statements

server-id = 100
log-bin = log-bin
binlog-format = ROW

##初始化數據庫 chown -R mysql:mysql /home/quant_group/mysql/3306/ cd /home/quant_group/mysql/3306/bin ./mysql_install_db --user=mysql --basedir=/home/quant_group/mysql/3306 --datadir=/home/quant_group/mysql/3306/data ###注: 以前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目錄下,且已被廢棄優化

"--initialize"會生成一個隨機密碼(~/.mysql_secret),而"--initialize-insecure"不會生成密碼

--datadir目標目錄下不能有數據文件

##啓動 數據庫 service mysqld start # 啓動不了多是權限問題,把 mysql/3306下面都賦予mysql用戶權限就好啦 ##查看 密碼 view /root/.mysql_secret ##登陸 數據庫 mysql -uroot -p'.U,tH2Cf3vRj' #這邊密碼要加引號,要麼然的話存在轉義問題 若是提示 bash: mysql: command not found 那麼vim /root/.bash_profile 將mysql 的命令加進去 好比: # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs # PATH=$PATH:$HOME/bin #修改前 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin #修改後 export PATH 而後 source /root/.bash_profile

而後修改密碼,好比修改root用戶的新密碼爲123456
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

##如何刪除數據庫 yum remove mysql mysql-server mysql-libs mysql-server;

find / -name mysql 將找到的相關東西delete掉;

rpm -qa|grep mysql(查詢出來的東東yum remove掉)

建立用戶

The create user command:

    create user test identified by '123456';
    上面創建的用戶能夠在任何地方登錄。

    若是要限制在固定地址登錄,好比localhost 登錄:
    create user test@登陸主機 identified by '123456';

grant:
    grant all privileges on *.* to test@登陸主機
    grant select,insert,update,delete on *.* to test@"%" Identified by "123456";
    格式:grant select on 數據庫.* to 用戶名@登陸主機 identified by "密碼"

修改密碼:
    grant all privileges on 數據庫.* to test@登陸主機 identified by '654321'; 
flush:
    flush privileges; 
查看用戶信息:
    select host,user from mysql.user;

###donation: 若有捐贈意向的朋友,請捐贈到支付寶帳號:qdcccc@gmail.com 帳戶名:楊春煉

###ask for help: 如需幫助,請加QQ:1028750558或微信:lian-ye

相關文章
相關標籤/搜索