本次安裝操做在騰訊雲上實現(版本:CentOS Linux release 7.4.1708 (Core) )。html
根據教程實現(中途各類挖坑,填坑。。。),地址:http://www.runoob.com/linux/mysql-install-setup.html mysql
##################################華麗的分割線##################################linux
MySQL 安裝
1、安裝編譯工具及庫文件
c++
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-develweb
2、 安裝cmake 編譯器sql
cmake 版本:cmake-3.1.1。數據庫
一、下載地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gzbootstrap
$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz服務器
二、解壓安裝包curl
$ tar zxvf cmake-3.1.1.tar.gz
三、進入安裝包目錄
$ cd cmake-3.1.1
四、編譯安裝
$ ./bootstrap $ make && make install
3、安裝 MySQL
MySQL版本:mysql-5.6.15。
一、下載地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
本人下載安裝包路徑:/usr/local (嚴重影響之後各配置路徑)
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
二、解壓安裝包
$ tar zxvf mysql-5.6.15.tar.gz
三、進入安裝包目錄
$ cd mysql-5.6.15
四、編譯安裝
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306 $ make && make install
五、查看mysql版本:
$ /usr/local/webserver/mysql/bin/mysql --version
MySQL 配置
一、建立mysql運行使用的用戶mysql:
$ /usr/sbin/groupadd mysql $ /usr/sbin/useradd -g mysql mysql
二、建立binlog和庫的存儲路徑並賦予mysql用戶權限
$ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql $ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/
三、建立my.cnf配置文件
將/etc/my.cnf替換爲下面內容
(建議將原文件重命名,再新建立這個名字的文件,將下面內容粘貼進去,其中datadir 是數據庫存放的位置,默認/var/lib/mysql)
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /www/data_mysql
log-error = /usr/local/webserver/mysql/mysql_error.log
pid-file = /usr/local/webserver/mysql/mysql.pid
open_files_limit = 65535
back_log = 600
max_connections = 5000
max_connect_errors = 1000
table_open_cache = 1024
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 600
#thread_concurrency = 8
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default-tmp-storage-engine=MYISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 128M
max_heap_table_size = 128M
log-slave-updates
log-bin = /usr/local/webserver/mysql/binlog/binlog
binlog-do-db=oa_fb
binlog-ignore-db=mysql
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog
relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog
relay-log = /usr/local/webserver/mysql/relaylog/relaylog
expire_logs_days = 10
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host = 192.168.1.2
#master-user = username
#master-password = password
#master-port = 3306
server-id = 1
loose-innodb-trx=0
loose-innodb-locks=0
loose-innodb-lock-waits=0
loose-innodb-cmp=0
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0
loose-innodb-cmpmem=0
loose-innodb-cmpmem-reset=0
loose-innodb-buffer-page=0
loose-innodb-buffer-page-lru=0
loose-innodb-buffer-pool-stats=0
loose-innodb-metrics=0
loose-innodb-ft-default-stopword=0
loose-innodb-ft-inserted=0
loose-innodb-ft-deleted=0
loose-innodb-ft-being-deleted=0
loose-innodb-ft-config=0
loose-innodb-ft-index-cache=0
loose-innodb-ft-index-table=0
loose-innodb-sys-tables=0
loose-innodb-sys-tablestats=0
loose-innodb-sys-indexes=0
loose-innodb-sys-columns=0
loose-innodb-sys-fields=0
loose-innodb-sys-foreign=0
loose-innodb-sys-foreign-cols=0slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log
long_query_time = 1
[mysqldump]
quick
max_allowed_packet = 32M
四、初始化數據庫
$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
上面語法報錯FATAL ERROR: Could not find ./bin/my_print_defaults
問題緣由:操做時絕對路徑下找不到該文件,改爲相對路徑下執行
解決方法:切換到安裝目錄路徑(/usr/local/webserver/mysql)下執行
./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
五、建立開機啓動腳本
$ cd /usr/local/webserver/mysql/ $ cp support-files/mysql.server /etc/rc.d/init.d/mysqld $ chkconfig --add mysqld $ chkconfig --level 35 mysqld on
六、啓動mysql服務器
$ service mysqld start
上面語法報錯 The server quit without updating PID file (/usr/local/webserver/mysql/mysql.pid).
問題緣由:查看路徑下沒有文件mysql.pid,mysql全部者是root,mysql用戶沒有建立權限
解決方法:將mysql文件夾下的全部者給mysql,chown -R mysql:mysql mysql
七、鏈接 MySQL
$ /usr/local/webserver/mysql/bin/mysql -u root -p
root用戶下沒有密碼,或者直接su mysql 進入
客戶端鏈接服務器
使用Navicat鏈接mysql時報錯,主機不容許鏈接服務器。
1.鏈接MySQL
$ /usr/local/webserver/mysql/bin/mysql -u root -p
2.設置鏈接信息
用戶:mysql使用密碼:mypassword從任何主機鏈接到mysql服務器
GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
若是你想容許用戶myuser從ip爲192.168.2.3的主機鏈接到mysql服務器,並使用mypassword做爲密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.2.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
其餘命令
- 啓動:service mysqld start
- 中止:service mysqld stop
- 重啓:service mysqld restart
- 重載配置:service mysqld reload
- 查看進程 ps -elf | grep mysqld