標籤:
1 概述
首先來看下mysql的:
http://ftp.plusline.de/mysql/Downloads/
這裡有mysql的各種版本
作業系統:CentOS release 6.8 (Final)
資料庫版本:mysql-5.6.31
2 規劃
Mysql程式主目錄 |
/mysql |
屬組: mysql 屬主:root |
Mysql資料目錄 |
/data |
屬組: mysql 屬主: mysql |
Mysql設定檔 |
/mysql |
屬組:mysql 屬主: root |
Mysql連接埠號碼 |
3306 |
|
Sock |
/mysql/mysql.sock |
屬組:mysql 屬主:root |
|
|
|
|
|
|
3 安裝3.1 安裝前準備
首先要確定一下軟體被安裝:
cmake,make,gcc,Perl,
yum install cmake,make,gcc,Perl -y
3.2 安裝3.2.1 解壓軟體
tar -zxvf mysql-5.6.31.tar.gz
3.2.2 編譯安裝
進入mysql目錄
cd mysql-5.6.31
建立目錄
mkdir bootstarp
配置編譯配置的參數
cmake .. -DCMAKE_INSTALL_PREFIX = /mysql The installation base directory.
-DMYSQL_DATADIR = /data The location of the MySQL data directory.
-DSYSCONFDIR=/mysql The default my.cnf option file directory.
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_TCP_PORT=3306 The port number on which the server listens for TCP/IP connections. The default is 3306.
-DMYSQL_UNIX_ADDR=/mysql/mysql.sock
3.3 make並且make install
make
make install
至此mysql安裝完畢
4 安裝後的工作4.1 初始化資料目錄
cd mysql
cp ./support-files/my-default.cnf my.cnf
然後編輯mysql添加如下選擇:
basedir = /mysql
datadir = /data
port = 3306
socket = /mysql/mysql.scok
更改目前的目錄的許可權
chown -R mysql .
chgrp -R mysql .
初始化資料目錄
scripts/mysql_install_db --user=mysql
4.2 最後更改安裝目錄許可權
也可以不更改
4.3 啟動mysql伺服器
shell> bin/mysqld_safe --user=mysql &
4.4 測試mysql伺服器
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
4.5 初始化mysql帳號
mysql安裝完後,有root使用者和匿名戶,root使用者沒有密碼,匿名使用者表示任何人都可以串連上mysql,這是安全的。
查看這些使用者的語句如下:
mysql> SELECT User, Host, Password FROM mysql.user;
因此我們需要給root使用者佈建密碼,給匿名使用者設定密碼,或者刪除匿名使用者。
4.5.1 給root使用者佈建密碼
方法一.
使用set命令為上邊的每一個使用者佈建密碼。
SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘111111‘);
set password for ‘root‘@‘mysql.localdomain‘=password(‘111111‘);
set password for ‘root‘@‘127.0.0.1‘=password(‘111111‘);
SET PASSWORD FOR ‘root‘@‘::1‘ = PASSWORD(‘111111‘);
方法二:
我們也可以通過一條命令搞定。
UPDATE mysql.user SET Password = PASSWORD(‘new_password‘) WHERE User = ‘root‘;
FLUSH PRIVILEGES;
flush privileges是告訴伺服器去重讀授權表,否則設定的使用者名稱密碼只有到mysql伺服器重啟後才可以生效。
方法三.
我們也可以通過mysqladmin來給root使用者修改密碼
mysqladmin -u root password "new_password"
mysqladmin -u root -h host_name password "new_password"
4.5.2 給匿名使用者設定密碼
方法一.
set password for ‘‘@‘localhost‘=password(‘111111‘);
set password for ‘‘@‘mysql.localdomain‘=password(‘111111‘);
方法二.
UPDATE mysql.user SET Password = PASSWORD(‘new_password‘) WHERE User = ‘‘;
FLUSH PRIVILEGES;
4.5.3 刪除匿名使用者
DROP USER ‘‘@‘localhost‘;
DROP USER ‘‘@‘ mysql.localdomain ‘;
5 test安全問題
預設情況下,mysql.db表裡含了一些行,這些行定義了任何使用者都可以訪問test資料庫,或者以test_開頭的資料庫,這是安全的,應該移除。
DELETE FROM mysql.db WHERE Db LIKE ‘test%‘;
DELETE FROM mysql.db WHERE Db LIKE ‘test%‘;
或者刪除test資料庫,不建立以test開頭的資料庫。
源碼編譯安裝mysql