日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

001:介绍和安装

發布時間:2024/4/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 001:介绍和安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一. MySQL版本選擇
  • 二. MySQL官方網站介紹
    • 1. Developer Zone: MySQL開發工程師板塊
    • 2. Downloads:MySQL下載
    • 3. Documentation:MySQL文檔
  • 三. MySQL下載
  • 四. MySQL安裝
    • 1. 安裝通用步驟:
    • 2. MySQL 5.6.X 安裝:
    • 3. MySQL 5.7.X 安裝
    • 4. 驗證安裝
    • 5. MySQL啟動
  • 五. 附錄
    • 1. 配置文件my.cnf
    • 2. 幾個重要的參數配置和說明
    • 3. my.cnf問題
    • 4. 安裝腳本 run_02_install_new_mysql_version.sh

一. MySQL版本選擇

  • MySQL5.6 以后的版本,推薦使用官方版本。
  • Percona:在5.6版本以后,MySQL將Percon之前優化集成到官方版本中;
  • MariaDB:無INNODB;且核心代碼較老
  • MySQL在5.6以后不斷重構源碼,安裝包越來越大,功能和性能在持續改進

  • 二. MySQL官方網站介紹

    官方網站:http://www.mysql.com

    1. Developer Zone: MySQL開發工程師板塊

    • Articles: Oracle工程師自己的博客
    • Plant MySQL: 和MySQL相關從業人員的博客
    • Bugs:MySQL BugList
    • Worklog:開發記錄
    • Labs:MySQL實驗性項目

    2. Downloads:MySQL下載

    • Enterprise:MySQL企業版本相關,略過
    • Community:社區版,我們下載和使用社區版
      • MySQL Community Server:MySQL Server
      • MySQL Fabric : 和管理相關的工具
      • MySQL Router:路由中間件
      • MySQL Utilities:MySQL應用程序包
      • MySQL Workbench:官方圖型化管理界面
      • MySQL Proxy:MySQL代理。Alpha版本,不推薦

    3. Documentation:MySQL文檔

    • 官方文檔 版面更改,下載離線文檔在左側Menu的下面
      • PDF A4
      • EPUB
      • HTML

    三. MySQL下載

  • 推薦下載Linux-Generic版本
  • Source Code版本主要作用是為了讓開發人員研究源碼使用,自己編譯對性能提升不明顯
  • 不推薦Version 5.5.X,有部分bug
  • 推薦使用Version 5.6.X和Version 5.7.X
  • 下載地址:

    • MySQL Community Server 5.7.18 Linux Generic x86-64bit

    • MySQL Community Server 5.6.27 Linux Generic x86-64bit


  • 四. MySQL安裝

    1. 安裝通用步驟:

    • 解壓縮mysql-VERSION-linux-glibc2.5-x86_64.tar.gz
    • 打開INSTALL_BINARY 文件,按照shell>開頭的步驟進行操作
    • 將export PATH=/安裝路徑/mysql/bin:$PATH添加到/etc/profile
    • chkconfig mysqld on或者chkconfig mysqld.server on因你的環境而定。

    2. MySQL 5.6.X 安裝:

    shell> yum install libaio # Debain系用戶:apt-get install libaio1 shell> groupadd mysql shell> useradd -r -g mysql mysql shell> cd /usr/local shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server

    3. MySQL 5.7.X 安裝

    shell> groupadd mysql shell> useradd -r -g mysql mysql shell> cd /usr/local shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> mkdir mysql-files shell> chmod 770 mysql-files shell> chown -R mysql . shell> chgrp -R mysql . shell> bin/mysqld --initialize --user=mysql #該步驟中會產生臨時root@localhost密碼 shell> bin/mysql_ssl_rsa_setup shell> chown -R root . shell> chown -R mysql data mysql-files shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server

    4. 驗證安裝

    • data目錄在安裝之前是空目錄,安裝完成后應該有ibXXX等文件
    • 安裝過程中輸出的信息中,不應該含有ERROR信息,錯誤信息默認會寫入到$HOSTNAME.err的文件中
    • 通過bin/mysql命令(5.7.X含有臨時密碼)可以正常登錄

    5. MySQL啟動

    • mysqld_safe --user=mysql & 即可啟動,mysqld_safe是一個守護mysqld進程的腳本程序,旨在mysqld意外停止時,可以重啟mysqld進程
    • 也可以通過INSTALL_BINARRY中的的步驟,使用/etc/init.d/mysql.server start進行啟動(啟動腳本以你復制的實際名字為準,通常改名為mysqld,即/etc/init.d/mysqld start)

    五. 附錄

    1. 配置文件my.cnf

    # line :V1.9 # mail :gczheng@139.com # data :2018-07-19 # file_name :my.cnf # update :#### 注意 :建議參數根據實際情況作調整 #### 本配置文件主要適用于MySQL 5.7.18版本[client] port = 3306 socket = /data/mysqldata/mysql.sock #======================================================================= # # MySQL客戶端配置 #======================================================================= [mysql] prompt="(\u@\h) \\R:\\m:\\s [\d]> " no-auto-rehash default-character-set = utf8mb4 #======================================================================= # MySQL服務器全局配置 #======================================================================= [mysqld] user = mysql port = 3306 server-id = 49180 tmpdir = /data/mysqldata datadir = /data/mysqldata socket = /data/mysqldata/mysql.sock wait_timeout = 31536000 #interactive_timeout = 600 #sql_mode = #sql_mode 配置為空值 #skip_name_resolve = 1 lower_case_table_names = 1 character-set-server = utf8mb4 log_timestamps = SYSTEM init_connect='SET NAMES utf8mb4' max_allowed_packet = 128M ######################### 性能參數 #################### open_files_limit = 10240 max_connections = 1000 max_user_connections=999 max_connect_errors = 100000 table_open_cache = 1024 thread_cache_size = 64 max_heap_table_size = 32M query_cache_type = 0 ###global cache ### key_buffer_size = 1G query_cache_size = 0 tmp_table_size = 32M #內存臨時表 binlog_cache_size = 4M #二進制日志緩沖 ###session cache ### sort_buffer_size = 8M #排序緩沖 join_buffer_size = 4M #表連接緩沖 read_buffer_size = 8M #順序讀緩沖 read_rnd_buffer_size = 8M #隨機讀緩沖 thread_stack = 256KB #線程的堆棧的大小 ######################### binlog設置 ##################### binlog_format = ROW log_bin = /data/mysqldata/binlog max_binlog_size = 1G expire_logs_days = 15 #binlog比較占空間,注意磁盤空間 sync_binlog = 1 #重要參數必須修改為1 ######################### 復制設置 ######################## log_slave_updates = 1 #replicate-do-db = test #binlog-ignore-db = mysql ### GTID 配置 ### gtid_mode=ON enforce-gtid-consistency=true #****************** 開啟并行復制(從庫)****************** slave-parallel-type=LOGICAL_CLOCK #基于組提交的并行復制方式 slave-parallel-workers= 8 #并行的SQL線程數量(cpu核數) master-info_repository=TABLE #master信息以表的形式保存 relay_log_info_repository=TABLE #slave信息以表的形式保存 relay_log_recovery=ON #relay_log自我修復 ######################### innodb ########################## default_storage_engine = InnoDB innodb_data_file_path = ibdata1:1G:autoextend innodb_buffer_pool_size = 1G #系統內存50% innodb_open_files = 5120 #調整innodb_open_files設置值,必須小于open_files_limit的設置值 innodb_flush_log_at_trx_commit = 1 #線上服務器必須配置為1 innodb_file_per_table = 1 innodb_lock_wait_timeout = 5 innodb_io_capacity = 400 #根據您的服務器IOPS能力適當調整innodb_io_capacity,配SSD盤可調整到 10000 - 20000 innodb_io_capacity_max = 20000 innodb_flush_method = O_DIRECT innodb_log_file_size = 1G innodb_log_files_in_group = 2 innodb_large_prefix = 0 innodb_thread_concurrency = 64 innodb_strict_mode = OFF innodb_sort_buffer_size = 4194304 #****************** undolog設置 ****************** innodb_undo_directory = /data/undolog #undolog空間的目錄位置 innodb_undo_tablespaces = 2 #undolog日志文件個數,mysql8之后將棄用 innodb_undo_logs = 128 #回滾段的數量, 至少大于等于35,默認128。 innodb_max_undo_log_size = 1G #當超過這個閥值(默認是1G),會觸發truncate回收(收縮)動作,truncate后空間縮小到10M。 innodb_purge_rseg_truncate_frequency = 128 #控制回收(收縮)undolog的頻率 innodb_undo_log_truncate = 1 #即開啟在線回收undolog日志文件 ######################### log 設置 ##################### log_error = /data/mysqldata/error.log slow_query_log = 1 long_query_time = 10 slow_query_log_file = /data/mysqldata/slow.log #======================================================================= # MySQL mysqldump配置 #======================================================================= [mysqldump] quick max_allowed_packet = 128M #======================================================================= # MySQL mysqld_safe配置 #======================================================================= [mysqld_safe] log_error = /data/mysqldata/error.log pid_file = /data/mysqldata/mysqldb.pid[mysqld-5.7] innodb_buffer_pool_dump_pct = 40 innodb_page_cleaners = 4 innodb_undo_log_truncate = 1 innodb_max_undo_log_size = 2G innodb_purge_rseg_truncate_frequency = 128 binlog_gtid_simple_recovery=1 log_timestamps=system transaction_write_set_extraction=MURMUR32 show_compatibility_56=on

    2. 幾個重要的參數配置和說明

    • innodb_log_file_size = 4G :做實驗可以更改的小點,線上環境推薦用4G,以前5.5和5.1等版本之所以官方給的值很小,是因為太大后有bug,現在bug已經修復
    • innodb_undo_logs = 128和innodb_undo_tablespaces = 3建議在安裝之前就確定好該值,后續修改比較麻煩
    • [mysqld],[mysqld-5.7]這種tag表明了下面的配置在什么版本下才生效,[mysqld]下均生效
    • datadir, innodb_log_group_home_dir, innodb_undo_directory一定要注意他的權限是 mysql:mysql

    3. my.cnf問題

    • 使用mysqld --help -vv | grep my.cnf查看mysql的配置文件讀取順序
    • 后讀取的my.cnf中的配置,如果有相同項,會覆蓋之前的配置
    • 使用--defaults-files可指定配置文件

    4. 安裝腳本 run_02_install_new_mysql_version.sh

    • 注意:腳本、my.cnf文件和mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz放在同一目錄下
    #!/bin/bash # line: V1.0 # mail: gczheng@139.com # data: 2018-06-21 # script_name: run_02_install_new_mysql_version.sh # function: Install mysql5.7.18#======================================================================= #配置信息 #======================================================================= MYCNF=my.cnf MYSQL_SOURCE_PACKAGES=mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz MYSQL_DOWNLOAD_LINK='http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz' MYSQL=/usr/local/mysql/bin/mysql#======================================================================= # echo添加顏色 #======================================================================= echo_color(){color=${1} && shiftcase ${color} inblack)echo -e "\e[0;30m${@}\e[0m";;red)echo -e "\e[0;31m${@}\e[0m";;green)echo -e "\e[0;32m${@}\e[0m";;yellow)echo -e "\e[0;33m${@}\e[0m";;blue)echo -e "\e[0;34m${@}\e[0m";;purple)echo -e "\e[0;35m${@}\e[0m";;cyan)echo -e "\e[0;36m${@}\e[0m";;*)echo -e "\e[0;37m${@}\e[0m";;esac # --- end of case --- }#======================================================================= #檢查安裝包、腳本、my.cnf是否齊全 #=======================================================================function chk_install_resource() {#判斷 template_install-my.cnf 是否存在if [ ! -f "$MYCNF" ];thenecho_color red "$(date +'%Y-%m-%d %H:%M:%S') $MYCNF file is not exits!$(echo_warning)"exit 1fi#判斷 MySQL Community Server 5.7.18 tar包是否存在if [ ! -f "$MYSQL_SOURCE_PACKAGES" ];thenecho_color red "$(date +'%Y-%m-%d %H:%M:%S') $MYSQL_SOURCE_PACKAGES is not exits, please download it from $MYSQL_DOWNLOAD_LINK"exit 1fi } #======================================================================= # 添加帳號和目錄 #======================================================================= function create_sys_user() {#添加mysql用戶信息if id mysql &> /dev/null;thenecho_color red "$(date +'%Y-%m-%d %H:%M:%S') MySQL user is exits."elseuseradd -r -s /bin/false mysql && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') The system user is added to success .."fi#添加mysql數據目錄/r2/mysqldata和權限if [ -d "/r2" ];thenif [ ! -d "/r2/mysqldata" ];thenmkdir -p /r2/mysqldata && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') MySQL data directory is created .."chown -R mysql:mysql /r2/mysqldatachmod 750 /r2/mysqldataelif [ "$(ls -A /r2/mysqldata)" = "" ];thenecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') MySQL data directory is exits."elseecho_color red "$(date +'%Y-%m-%d %H:%M:%S') MySQL data directory is not empty. Please check it."exit 1fielseecho_color red "$(date +'%Y-%m-%d %H:%M:%S') /r2 directory is not exits. Please check the system config."exit 1fi } #======================================================================= #檢查是否有舊的mysql/mariadb版本存在 #=======================================================================function chk_old_mysql_version() {mysqlNum=$(rpm -qa | grep -Ei 'mysql|mariadb'|wc -l)if [ "${mysqlNum}" -gt "0" ];thenecho_color red "$(date +'%Y-%m-%d %H:%M:%S') The system has MySQL other version. There may be a conflict in the version!If it continues, the original database will be uninstall."read -p "Do you continue to install it(y/n):" cncase $cn iny|Y)rpm -qa | grep -Ei 'mysql|mariadb' | xargs yum remove -y &> /dev/nulltar_install;;n|N)exit 1;;*)echo_color red "$(date +'%Y-%m-%d %H:%M:%S') Input ERROR."esacelseecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') No old version was found."tar_installfi }#======================================================================= # 解壓安裝 #=======================================================================function tar_install() {echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Starting unzip $MYSQL_SOURCE_PACKAGES .."tar zxvf $MYSQL_SOURCE_PACKAGES -C /usr/local/ echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Unzip $MYSQL_SOURCE_PACKAGES SUCCESS .."if [ ! -d "/usr/local/mysql" ];thenln -s /usr/local/`echo $MYSQL_SOURCE_PACKAGES |awk -F ".tar.gz" '{printf $1}'` /usr/local/mysqlchown -R mysql:mysql /usr/local/mysqlchown -R mysql:mysql /usr/local/`echo $MYSQL_SOURCE_PACKAGES |awk -F ".tar.gz" '{printf $1}'`chmod 750 /usr/local/mysqlchmod 750 /usr/local/`echo $MYSQL_SOURCE_PACKAGES |awk -F ".tar.gz" '{printf $1}'`echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') MySQL package has been placed in the right position .."cp -f $MYCNF /etc/my.cnfelseread -p "/usr/local/mysql install directory already exists, delete it, and continue(y/n):" dncase $dn iny|Y)rm -rf /usr/local/mysqlln -s /usr/local/`echo $MYSQL_SOURCE_PACKAGES |awk -F ".tar.gz" '{printf $1}'` /usr/local/mysqlchown -R mysql:mysql /usr/local/mysqlchown -R mysql:mysql /usr/local/`echo $MYSQL_SOURCE_PACKAGES |awk -F ".tar.gz" '{printf $1}'`chmod 750 /usr/local/mysqlchmod 750 /usr/local/`echo $MYSQL_SOURCE_PACKAGES |awk -F ".tar.gz" '{printf $1}'`echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') MySQL package has been placed in the right position .."cp -f $MYCNF /etc/my.cnf;;n|N)exit 1;;*)echo_color red "$(date +'%Y-%m-%d %H:%M:%S') /usr/local/mysql is exits.Please check it."esacfiecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Starting initialization .."/usr/local/mysql/bin/mysqld --initialize --user=mysql &> /dev/null && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Initialization ......SUCCESS" }#======================================================================= # 修改環境變量 #======================================================================= function add_system_profile() { cat >> /etc/profile <<EOF export PATH=\$PATH:/usr/local/mysql/bin/ EOF source /etc/profile }function modify_system_env() { #egrep "/usr/local/mysql/bin/" /etc/profile &> /dev/null PROFILES=`grep -i "/usr/local/mysql/bin/" /etc/profile |wc -l` if [ $PROFILES -eq 0 ];thenadd_system_profileecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Flush profile done .." elseEXISTS=`grep -i "/usr/local/mysql/bin/" /etc/profile |grep -e "^#" |wc -l`if [ $EXISTS -gt 0 ];thenadd_system_profileecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Flush profile done .."fi fi }#======================================================================= #創建MySQL服務 #=======================================================================function el7_create_mysql_service() {cat > /usr/lib/systemd/system/mysql.service <<EOF [Unit] Description=mysql After=syslog.target network.target remote-fs.target nss-lookup.target[Service] Type=forking ExecStart=/usr/local/mysql/support-files/mysql.server start ExecReload=/usr/local/mysql/support-files/mysql.server restart ExecStop=/usr/local/mysql/support-files/mysql.server stop LimitNOFILE = 65535 PrivateTmp=false[Install] WantedBy=multi-user.target EOFsystemctl daemon-reload && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Reload systemd services .."systemctl enable mysql.service && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Enable MySQL systemd service .."systemctl start mysql.service && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Starting MySQL......SUCCESS!" || echo_color red "$(date +'%Y-%m-%d %H:%M:%S') Starting MySQL......FAILED!." }function el6_create_mysql_service() {cd /usr/local/mysql/support-files/cp mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysqlchkconfig --add mysql && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Add MySQL service for management .."chkconfig --list mysql && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') List MySQL service .."/etc/init.d/mysql start && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Starting MySQL......SUCCESS!" || echo_color red "$(date +'%Y-%m-%d %H:%M:%S') Starting MySQL......FAILED!." }#======================================================================= # 添加帳號 #=======================================================================function modify_mysql_account() {password=$(awk '/A temporary password/ {print $NF}' /r2/mysqldata/error.log)#echo_color cyan "mysql temp password is ${password}"if [ "${password}" != "" ];then${MYSQL} -uroot -p"${password}" --connect-expired-password -e "alter user root@localhost identified by 'iforgot';flush privileges;" &> /dev/null && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') 系統隨機密碼修改成功."p1=$?elseecho_color red "$(date +'%Y-%m-%d %H:%M:%S') MySQL密碼獲取失敗,請排查/清除數據目錄重新安裝."exit 1fi${MYSQL} -uroot -piforgot -e "grant all privileges on *.* to gcdb@'%' identified by 'iforgot';" &> /dev/null && echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') 授予gcdb@'%'用戶通過任意主機操作所有數據庫的所有權限成功."p2=$?if [[ "${p1}" == "0" && "${p2}" == "0" ]];thenecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') 現在可以登錄mysql數據庫,root@localhost和gcdb@'%'用戶的默認密碼是\033[41;37m iforgot \033[0m."elseecho_color red "$(date +'%Y-%m-%d %H:%M:%S') 授權失敗,請手動執行授權操作."fi }#======================================================================= # 開始安裝mysql #======================================================================= function mysql_install() {version=$(uname -r |awk -F '.' '{ print $(NF-1) }')if [ "${version}" != "el7" ];thenecho_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Start install mysql for el6."chk_install_resourcecreate_sys_userchk_old_mysql_versionmodify_system_envel6_create_mysql_servicemodify_mysql_accountelse echo_color cyan "$(date +'%Y-%m-%d %H:%M:%S') Start install mysql for el7."chk_install_resourcecreate_sys_userchk_old_mysql_versionmodify_system_envel7_create_mysql_servicemodify_mysql_accountfi }mysql_install echo_color blue "$(date +'%Y-%m-%d %H:%M:%S') \033[42;37m run_02_install_new_mysql_version.sh執行完成 \033[0m"

    轉載于:https://www.cnblogs.com/gczheng/p/7879403.html

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的001:介绍和安装的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。