天天看點

centos7.3源碼安裝MySQL+環境配置+使用者密碼設定+遠端通路配置一、下載下傳tar包二、yum方式安裝相關依賴包**三、建立一個使用者名為mysql的使用者并加入mysql使用者組四、解壓mysql-5.6.38.tar.gz,并且建立mysql安裝目錄和資料庫檔案存放目錄五、建立MySQL Server系統表六、配置七、某些指令使用指令八、使用者密碼設定九、my.cnf配置附加說明十、遠端通路配置

一、下載下傳tar包

wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz/from/http://cdn.mysql.com/(我下載下傳究極慢,幾K/S)

或者

用主機下載下傳好後使用XFTP6遠端連接配接,直接把下載下傳好的tar包複制到對應的linux目錄下

http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz/from/http://cdn.mysql.com/

centos7.3源碼安裝MySQL+環境配置+使用者密碼設定+遠端通路配置一、下載下傳tar包二、yum方式安裝相關依賴包**三、建立一個使用者名為mysql的使用者并加入mysql使用者組四、解壓mysql-5.6.38.tar.gz,并且建立mysql安裝目錄和資料庫檔案存放目錄五、建立MySQL Server系統表六、配置七、某些指令使用指令八、使用者密碼設定九、my.cnf配置附加說明十、遠端通路配置

二、yum方式安裝相關依賴包**

yum -y install cmake bison git ncurses-devel gcc gcc-c++

三、建立一個使用者名為mysql的使用者并加入mysql使用者組

groupadd mysql(建立使用者組)

useradd -g mysql mysql(建立使用者名屬mysql使用者組)

四、解壓mysql-5.6.38.tar.gz,并且建立mysql安裝目錄和資料庫檔案存放目錄

cd /Downloads(你剛才存放的tar壓縮包位置)

tar zxvf mysql-5.6.38.tar.gz (解壓)

mkdir /usr/local/mysql(建立一個解壓的目錄,喜歡就好)

mkdir /usr/local/mysql/data(建立目錄)

cd mysql-5.6.38/(跳轉目錄)

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1

(配置,注意上面編譯的選擇路徑要和你前面建立好的目錄一緻,不然你上面mkdir就無意義了)

make(編譯)

make install(安裝)

五、建立MySQL Server系統表

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

chown -R mysql:mysql /usr/local/mysql(把初始化生成的 /usr/local/mysql/my.cnf 配置檔案的屬主數組更改為mysql)

六、配置

配置環境變量

先使用find / -name mysql 檢視下lib的位置,我的lib位置是 /usr/lib64/mysql

vi /etc/profile

在後面加上

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
           
注意了 上面的lib要換成你find結果lib的位址

變量生效

source /etc/profile
           

檔案配置

find / -name my.cnf

(檢視mysql的配置檔案在哪裡,可能有兩個my.cnf,删掉其中一個,我的是在/etc/my.cnf和/etc/mysql/mycnf,因為我安裝在/etc下,所有删掉rm /etc/my.cnf yes)

最終my.cnf環境配置在最後面

七、某些指令使用指令

systemtctl status mysql(mysql狀态)

systemtctl start mysql(開始)

systemtctl stop mysql(停止)

systemtctl restart mysql(重新開機)

netstat -ntlp(檢視端口網絡狀态)

八、使用者密碼設定

設定賬号密碼

mysql -uroot -p

mysql> select * form mysql.user\G;

(查詢所有使用者資訊,\G是顯示方式)

(如果查詢結果不出來,把安全模式關掉)

mysql> quit
           

在my.cnf中把safe-updates更改為

safe-updates=0

記得重新開機才能生效

systemctl restart mysql
           

mysql -uroot -p

(再次進入mysql)

mysql> select * form mysql.user\G;

發現所有root使用者都沒有密碼(順便發現一些user表中空賬号。。)

給root添加密碼

mysql> UPDATE user SET Password=PASSWORD('密碼') where USER='root';
mysql> FLUSH PRIVILEGES;
           

添加個普通使用者吧,畢竟root特權使用者太強悍

隻能進行本地連接配接的超級使用者,

mysql> create user '使用者名'@'127.0.0.1' identified by '密碼’;
mysql> grant all privileges on *.*  to '使用者名''@'127.0.0.1' identified by '密碼' with grant option;
mysql> flush privileges;
           
  • ALL PRIVILEGES 是表示所有權限,你也可以使用select、update等權限。
  • ON 用來指定權限針對哪些庫和表
  • *.*中前面的*用來指定資料庫名,顯然是所有,後面的*用來指定表名。
  • ‘使用者名’@‘localhost’

    表示jack使用者,@後面接限制的主機,可以是IP、IP段、域名以及%,%表示任何地方。注意:這裡%有的版本不包括本地,以前碰到過給某個使用者設定了%允許任何地方登入,但是在本地登入不了,這個和版本有關系,遇到這個問題再加一個localhost的使用者就可以了。

  • IDENTIFIED BY 指定使用者的登入密碼。
  • WITH GRANT OPTION 這個選項表示該使用者可以将自己擁有的權限授權給别人。注意:經常有人在建立操作使用者的時候不指定WITH

    GRANT OPTION選項導緻後來該使用者不能使用GRANT指令建立使用者或者給其它使用者授權。

順便删除空使用者名…

mysql> delete from user where user='';
mysql> flush privileges;
mysql > SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;(檢視所有使用者及其權限)
           

九、my.cnf配置附加說明

\# For advice on how to change settings please see
\# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
\# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
\# *** default location during install, and will be replaced if you
\# *** upgrade to a newer version of MySQL.
 
[mysqld]
 
 
 
sql_mode=NO_ENGINE_SUBSTITUTION 
 
\# 一般配置選項
basedir = /etc/mysql
datadir = /etc/mysql/data
port = 3306 #端口
socket = /tmp/mysql.sock
character-set-server=utf8
 
 
back_log = 300
max_connections = 1000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
 
max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8
 
thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6
 
 
server_id=1
 
innodb_buffer_pool_size = 512M
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
 
 
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on
 
[mysqldump]
quick
 
max_allowed_packet = 32M
 
[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates=1
 
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M
 
[mysqlhotcopy]
interactive-timeout
 
[mysqld_safe]
open-files-limit = 8192

[client]
           

十、遠端通路配置

我另一篇的3.4很詳細。。

https://blog.csdn.net/xiedongze__/article/details/90714356