1. 程式人生 > >【mysql】mysql5.6原始碼安裝兩個例項--模擬生產庫

【mysql】mysql5.6原始碼安裝兩個例項--模擬生產庫

mysql5.6原始碼安裝兩個例項--模擬生產庫

原始碼方式---安裝兩個例項(mysql5.6.40&CentOS6.8)----------生產庫
mysql原始碼包:mysql-5.6.40.tar.gz

安裝相關軟體(前提條件是yum已正常使用)
# yum -y install make cmake gcc gcc-c++  bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

停用系統防火牆和selinux
# service iptables stop
# service ip6tables stop
# chkconfig iptables off
# chkconfig ip6tables off
# vi /etc/selinux/config
將SELINUX=enforcing這個值改為SELINUX=disabled

建立使用者和組

# groupadd mysql
# useradd -g mysql mysql

建立目錄

目錄說明:
軟體目錄:/u01/svr/mysql5.6
資料庫目錄:/u01/mydata/{my3306,my3307}
log目錄:/u01/logs
配置檔案目錄:/u01/conf

mkdir -p /u01/{svr,logs,conf,mydata,tmp,run}
mkdir -p /u01/svr/mysql5.6
mkdir -p /u01/mydata/{my3306,my3307}
mkdir -p /u01/logs/{my3306,my3307}/{binlog,iblog}
mkdir -p /u01/tmp/{my3306,my3307}
chown -R mysql:mysql /u01/
chmod -R 755 /u01/

檢視是否安裝了mysql

# rpm -qa|grep mysql -i
如果存在需要解除安裝,不然下面的安裝有可能會衝突
# rpm -e --nodeps xxx    (xxx搜尋的結果)

上傳原始碼安裝包到/u01下並解壓到前目錄:tar -zxvf /u01/mysql-5.6.40.tar.gz

cd /u01//mysql-5.6.40

預編譯
# cmake \
-DCMAKE_INSTALL_PREFIX=/u01/svr/mysql5.6 \
-DMYSQL_DATADIR=/u01/mydata/my3306 \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/u01/run/mysql3306.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
執行完後最後會有下面的資訊
strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:
    WITH_MEMORY_STORAGE_ENGINE
    WITH_READLINE
-- Build files have been written to: /home/temp/mysql-5.6.40

然後進行編譯
# make && make install

因編譯後有些檔案的許可權是root的,需要重新授權
chown -R mysql:mysql /u01/
chmod -R 755 /u01/

例項一:3306配置檔案
# vi /u01/conf/my3306.cnf
[client]
port=3306
socket=/u01/run/mysql3306.sock

[mysql]
pid_file=/u01/run/mysqld3306.pid

[mysqld]
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true

# system
basedir=/u01/svr/mysql5.6
datadir=/u01/mydata/my3306
max_allowed_packet=1g
max_connections=3000
max_user_connections=2800
open_files_limit=65535
pid_file=/u01/run/mysqld3306.pid
port=3306
server_id=101
skip_name_resolve=ON
socket=/u01/run/mysql3306.sock
tmpdir=/u01/tmp/my3306

#binlog
log_bin=/u01/logs/my3306/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=7
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=100

#logging
log_error=/u01/logs/my3306/error.log
slow_query_log_file=/u01/logs/my3306/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#relay
relay_log=/u01/logs/my3306/relaylog
relay_log_index=/u01/logs/my3306/relay.index
relay_log_info_file=/u01/logs/my3306/relay-log.info

#slave
slave_load_tmpdir=/u01/tmp/my3306/
slave_skip_errors=OFF

#innodb
innodb_data_home_dir=/u01/logs/my3306/iblog/
innodb_log_group_home_dir=/u01/logs/my3306/iblog/
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_change_buffering=inserts
innodb_checksums=ON
innodb_buffer_pool_size= 128M
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=67108864
innodb_log_file_size=1048576000
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe]
datadir=/u01/mydata/my3306/
例項二:3307配置檔案
# vi /u01/conf/my3307.cnf
[client]
port=3307
socket=/u01/run/mysql3307.sock

[mysql]
pid_file=/u01/run/mysqld3307.pid

[mysqld]
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true

# system
basedir=/u01/svr/mysql5.6
datadir=/u01/mydata/my3307
max_allowed_packet=1g
max_connections=3000
max_user_connections=2800
open_files_limit=65535
pid_file=/u01/run/mysqld3307.pid
port=3307
server_id=102
skip_name_resolve=ON
socket=/u01/run/mysql3307.sock
tmpdir=/u01/tmp/my3307

#binlog
log_bin=/u01/logs/my3307/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=7
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=100

#logging
log_error=/u01/logs/my3307/error.log
slow_query_log_file=/u01/logs/my3307/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#relay
relay_log=/u01/logs/my3307/relaylog
relay_log_index=/u01/logs/my3307/relay.index
relay_log_info_file=/u01/logs/my3307/relay-log.info

#slave
slave_load_tmpdir=/u01/tmp/my3307/
slave_skip_errors=OFF

#innodb
innodb_data_home_dir=/u01/logs/my3307/iblog/
innodb_log_group_home_dir=/u01/logs/my3307/iblog/
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_change_buffering=inserts
innodb_checksums=ON
innodb_buffer_pool_size= 128M
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=67108864
innodb_log_file_size=1048576000
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe]
datadir=/u01/mydata/my3307/
注:兩個例項的server_id不能一樣!!

初始化3306資料庫
# cd /u01/svr/mysql5.6/scripts
# ./mysql_install_db --basedir=/u01/svr/mysql5.6 --datadir=/u01/mydata/my3306 --defaults-file=/u01/conf/my3306.cnf

初始化3307資料庫
# cd /u01/svr/mysql5.6/scripts
# ./mysql_install_db --basedir=/u01/svr/mysql5.6 --datadir=/u01/mydata/my3307 --defaults-file=/u01/conf/my3307.cnf

檢視
/u01/logs/my3306/erro.log和/u01/logs/my3307/erro.log
是否有報錯資訊,重點檢視erro關鍵詞,如沒有證明成功安裝。

如果報錯,需要把data和log新生成的檔案刪除再重新執行初始化

設定環境變數
在PATH=$PATH:$HOME/bin新增引數:/u01/svr/mysql5.6/bin:/u01/svr/mysql5.6l/lib
$ vi /home/mysql/.bash_profile
PATH=$PATH:$HOME/bin:/u01/svr/mysql5.6/bin:/u01/svr/mysql5.6l/lib

$ source /home/mysql/.bash_profile

接下來就是啟動、使用、關閉mysql兩個例項,建立sh資料夾存放sh指令碼
$ mkdir /u01/sh
注:多個例項,建議分開啟動,這樣便於管理
建立啟動指令碼
$ vi /u01/sh/start3306.sh
#!/bin/bash
mysqld_safe --defaults-file=/u01/conf/my3306.cnf --socket=/u01/run/mysql3306.sock &
$ vi /u01/sh/start3307.sh
#!/bin/bash
mysqld_safe --defaults-file=/u01/conf/my3307.cnf --socket=/u01/run/mysql3307.sock &
授權
$ chmod +x *.sh

啟動和檢視程序
$ ps -ef|grep mysql
注意是否有/bin/sh /u01/svr/mysql5.6/bin/mysqld_safe和/u01/svr/mysql5.6/bin/mysqld這兩種程序,每個例項有兩個程序
注: 建議使用mysqld_safe啟動mysql,mysqld_safe會一直監控著,如果mysqld服務異常的關閉了,mysqld_safe會自動啟動mysqld服務

修改密碼
登入指令碼有可能需要修改root使用者後才正常,啟動服務後,更改root密碼
$ mysql
mysql> update mysql.user set Password = password('新密碼') where User='root';
如:update mysql.user set Password = password('root') where User='root';
mysql> flush privileges;

建立登入mysql指令碼
$ vi /u01/sh/m6
#!/bin/bash
mysql --socket=/u01/run/mysql3306.sock --port=3306 -p
$ vi /u01/sh/m7
#!/bin/bash
mysql --socket=/u01/run/mysql3307.sock --port=3307 -p
授權
$ chmod +x *

建立關閉指令碼
$ vi /u01/sh/shutdown3306.sh
#!/bin/bash
mysqladmin --socket=/u01/run/mysql3306.sock --port=3306 shutdown -p
$ vi /u01/sh/shutdown3307.sh
#!/bin/bash
mysqladmin --socket=/u01/run/mysql3307.sock --port=3307 -p shutdown -p
授權
$ chmod +x *.sh

//為root新增遠端連線的能力。
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "新密碼";

相關推薦

mysqlmysql5.6原始碼安裝例項--模擬生產

mysql5.6原始碼安裝兩個例項--模擬生產庫原始碼方式---安裝兩個例項(mysql5.6.40&CentOS6.8)----------生產庫mysql原始碼包:mysql-5.6.40.tar.gz安裝相關軟體(前提條件是yum已正常使用)# yum -y i

MYSQLMySQL5.6.37二進位制安裝

最近有個專案要用到mysql 於是在mysql的論壇中找到了一個5.6.37版本的 下面介紹怎麼安裝和使用mysql 下載地址: 下面這個是我上傳到雲上的 1.下載並上傳到伺服器中,進行解壓,解壓到/usr/local下 [[email protected]

0008mysql5.6安裝版下載配置教程

1、下載 2、解壓 解壓zip壓縮檔案到你想要的位置。我的解壓目錄是:D:\Install\mysql\mysql-5.6.36-winx64 3、配置  將解壓目錄下預設檔案 my-default.ini 改名 my.ini 儲存。 開啟my.

MySQLWindows系統下安裝MySQL 5.6.37(壓縮包方式)

Windows系統下安裝MySQL 5.6.37(壓縮包方式) 1、下載安裝介質 安裝介質:mysql-5.6.37-winx64.zip 下載地址:http://blog.csdn.net/kerafan/article/details/780018492、解壓安裝介質

MySQLMySQL5.7 匯入時報“cannot create a JSON value from a string with CHARACTER SET 'binary'.”錯誤的解決辦法

json是mysql 5.7版本才新增的資料型別,用mysql-front 6.0匯出時json欄位會自動轉換成十六進位制“X’7B226……227D”,而不是json格式。 所以在匯入時就會報錯。 我的解決辦法: 1.用notepad++等文字編輯器開啟.sql檔案;

MySQLMYSQL5.7 建立/修改虛擬列

建立表: CREATE TABLE `表名` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL COMMENT '名稱', `attach` json DEFAULT NULL

mysqllinux用yum安裝mysql後,登陸root使用者提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (..

系統是CentOS 6.8 yum -y install mysql mysql-server mysql-devel 安裝完之後 [root@iZwz9gjh3pbz2k2hin7cg8Z ~]# mysql -uroot -p 報

JQuery使用JQuery 合並 json 對象

table true ble nbsp 參考 jquer log con merge 一,保存object1和2合並後產生新對象,若2中有與1相同的key,默認2將會覆蓋1的值 1 var object = $.extend({}, object1, obj

matlab關於uiwait和uiresume函式的理解及用途

uiwait和uiresume兩個函式,在編寫GUI相應程式碼時,是非常有用的兩個函式,他們的主要用途,通俗的來說,就是當程式執行到uiwait時,程式會處於等待中,知道遇到uiresume函式,才會執行uiwait之後的程式。 這一點在多個GUI介面進行資料傳遞時,起到了

MT279分母為根式的函數

http 距離 向量 jpg src mage 函數 兩個 最大值 函數$f(x)=\dfrac{3+5\sin x}{\sqrt{5+4\cos x+3\sin x}}$的值域是____ 分析:註意到$f(x)=\sqrt{10}\dfrac{5\sin x+3}{

88. Merge Sorted Arrayleetcode演算法,java將有序數組合併到一個數組中

88. Merge Sorted Array Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may as

若澤大數據MySQL實戰MySQL5.6 二進制部署

mod func kconfig currency rem .gz ... lin profile 下載mysql並檢查MD5 [root@hadoop-01 ~]# cd /usr/local [root@hadoop-01 local]# wget https://do

MySQL5.6原始碼編譯安裝(CentOS-6.6+MySQL-5.6)(一)

原文地址:http://my.oschina.net/wushuicheng/blog/551621 《基於Dubbo的分散式系統架構視訊教程》 高可用架構篇 MySQL原始碼編譯安裝(CentOS-6.6+MySQL-5.6) 部署環

MySQL配置MySQL安裝和遠程訪問步驟

image 新建 oar 最新 rest word clas 字段 sql安裝 以遠程服務器為例,安裝Mysql到Linux並配置遠程訪問,步驟如下: 1.下載安裝最新的rpm文件 方法一: rpm -Uvh http://repo.mysql.com/mysql-co

MySQL二進制分發安裝

其中 bench color courier start 裝包 lin .tar.gz col 操作系統:Red Hat Enterprise Linux Server release 6.5 Mysql安裝包:mysql-5.6.34-linux-glibc2.5-x8

MySqlmysql-5.7.20-winx64安裝配置

查詢 rac ces sql_mode mysql啟動 str -i 版本 image 序:   MySQL在Windows系統上的安裝配置問題。 0x01:   去MySQL的官網下載想要版本的MySQL免安裝文件。https://dev.mysql.com/do

20180608MySQL5.7新增表mysql.gtid_executed

GTID gitd_executed MySQL5.7新增表mysql.gtid_executed MySQL5.6主從,從庫獲取gtid_executed 在MySQL5.6的時候,主從復制開啟了GTID,在slave執行show slave status \G的時候可以獲取得到當前執行的GTID的

MYSQLLINUX安裝MYSQL

share orm 創建 table llb basedir 文檔 ket tar 安裝環境:系統是 Red Hat Enterprise Linux Server release 6.6 安裝軟件:mysql-5.6.33-linux-glibc2.5-x86_64.ta

LinuxCentOS 7.4 安裝 MySQL 8.0.12 解壓版

style prope error shared false 添加 tab code plain 安裝環境/工具   1、Linux(CentOS 7.4版)   2、mysql-8.0.12-el7-x86_64.tar.gz 安裝步驟   參考:https://dev.

MySQLcentOS中安裝和配置MySQL

在MySQL的官方網站下載rpm包,地址為https://dev.mysql.com/downloads/repo/yum/ 也可以使用wget來下載 地址可以在網上找   然後輸入rpm -Uvh mysql57-community-release-el7-10.noarch.rpm