(1)centos7--MySQL-5.6.36 Install Manual

來源:互聯網
上載者:User

標籤:編譯   建議   get   ext   packages   登入系統   初始化   5.6   .sh   

一、MySQL 的編譯安裝
準備工作
1、查看是否已經安裝過MySQL,如果安裝過建議使用(-e)將其卸載。
[[email protected] ~]# rpm -q mysql-server mysql ##查看是否有安裝過MySQL
[[email protected] ~]# mount /dev/cdrom /mnt/ ##掛載光碟片檔案
[[email protected] ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-13.20130511.el7.x86_64.rpm ##安裝ncurses-devel支援包
2、MySQL 5.X 版本需要cmake編譯安裝,所以需要安裝cmake包。
[[email protected] ~]# tar zxf cmake-2.8.6.tar.gz
[[email protected] ~]# cd cmake-2.8.6/
[[email protected] cmake-2.8.6]# ./configure
[[email protected] cmake-2.8.6]# gmake && gmake install
源碼編譯及安裝
1、建立運行使用者(mysql),此使用者不需要登入系統,可以不建立宿主目錄。
[[email protected] cmake-2.8.6]# groupadd mysql
[[email protected] cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql
2、解壓下載好的源碼包,解壓目錄/usr/src
[[email protected] ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/mysql-5.6.36/
3、配置mysql、以便支援更多功能
[[email protected] mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

    DCMAKE_INSTALL_PREFIX                   ##指定MySQL安裝到那個路徑下    DSYSCONFDIR                             ##指定初始設定檔案目錄    DDEFAULT_CHARSET                        ##指定預設使用的字元集編碼(如:utf8)    DDEFALUT_COLLATION                      ##指定預設使用的字元集校對規則,utf8_general_ci是適用於utf-8字元集的通用規則    DWITH_HXTRA_CHARSETS                    ##指定額外支援的其他字元集編碼4、編譯安裝    [[email protected] mysql-5.6.36]# make    [[email protected] mysql-5.6.36]# make install

安裝後的其他調整
1、對資料庫進行使用權限設定、屬主:屬組
[[email protected] ~]# chown -R mysql:mysql /usr/local/mysql
2、建立設定檔,因centos7預設支援mariadb資料庫,所以系統預設的/etc/my.cof設定檔是MariaDB的設定檔、
而在MySQL來源目錄中的support-files檔案夾下,提供了MySQL資料可的樣本設定檔my-default.cof檔案,所以
我們需要拷貝my-default.cof檔案到/etc路徑下,並刪除my.cof

    [[email protected] mysql-5.6.36]# rm -rf /etc/my.cof    [[email protected] mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf    [[email protected] ~]# vi /etc/my.cnf                                              ##手動指定pid檔案    pid-file=/usr/local/mysql/data/mysql.pid    :wq3、初始化資料庫,使使用者mysql可以正常登陸,所以需要運行使用者mysql的身份執行初始化指令碼mysql_install_db,指定資料庫存放路徑等。    [[email protected] mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/4、設定環境變數,為了方便在認可目錄下使用mysql命令,需要在/etc/profile設定環境變數    [[email protected] mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile    [[email protected] ~]# source /etc/profile5、添加系統服務    [[email protected] mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh     [[email protected] mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh    [[email protected] ~]# vi /usr/lib/systemd/system/mysqld.service    [Unit]    Description=The Apache HTTP Server    After=network.target    [Service]    User=mysql    Group=mysql    Type=forking    PIDFile=                                                ##PID檔案為空白    ExecStart=/usr/local/mysql/bin/mysqld.sh start    ExecStop=/usr/local/mysql/bin/mysqld.sh stop    [Install]    WantedBy=multi-user.target    :wq    [[email protected] ~]# systemctl start mysqld              ##啟動MySQL    [[email protected] ~]# systemctl enable mysqld             ##設定為開機啟動    [[email protected] ~]# systemctl status mysqld             ##查看啟動狀態    [[email protected] ~]# netstat -anpt | grep mysqld         ##過濾mysql連接埠狀態

二、訪問MySQL資料庫
1、登陸MySQL伺服器:預設使用者為root 密碼為空白
1)無密碼登陸
[[email protected] ~]# mysql -u root ##“-u”選項用於指定認證使用者
2)有密碼登陸
[[email protected] ~]# mysql -u root -p ##“-p”選項來進行密碼校正
3)設定登入mysql的root使用者密碼
[[email protected] ~]# mysqladmin -u root password 123123
2、執行MySQL動作陳述式
mysql> STATUS; ##"STATUS;"語句可以查看當前資料庫的基本狀態
3、退出mysql作業環境
mysql> exit ##退出可以使用"exit"或"quit"命令退出mysql編輯器
三、使用mysql資料庫
查看資料庫結構
1、查看資料庫系統中有哪些資料庫
mysql> show databases;
2、進入某個資料庫
mysql> use mysql;
3、查看當前資料庫中有哪些表
mysql> show tables;
4、查看錶結構
mysql> describe user;
建立及刪除庫和表
1、建立資料庫,名為benet
mysql> CREATE DATABASE benet;
Query OK, 1 row affected (0.00 sec)
2、在資料庫中建立表,表中兩列user_name不允許為空白,user_passwd設定為主鍵,
mysql> use benet
Database changed
mysql> CREATE TABLE users (user_name char(16) NOT NULL,user_passwd char(100) DEFAULT ‘‘,PRIMARY KEY (user_name));
Query OK, 0 rows affected (0.03 sec)
3、刪除一個資料表
mysql> DROP TABLE benet.users;
Query OK, 1 row affected (0.00 sec)
4、刪除一個資料庫
mysql> DROP DATABASE benet;
Query OK, 1 row affected (0.00 sec)
管理表中的資料記錄
1、向表中插入資料
mysql> use benet;
Database changed
mysql> insert into users (user_name,user_passwd) values (‘zhangsan‘,PASSWORD(‘123123‘)); ##方法一
Query OK, 1 row affected (0.00 sec)

    mysql> insert into users values (‘lisi‘,PASSWORD(‘123123‘));                                            ##方法二    Query OK, 1 row affected (0.00 sec)2、查詢資料記錄    mysql> select * from benet.users;                                               ##查詢表中所有列    +-----------+-------------------------------------------+    | user_name | user_passwd                               |    +-----------+-------------------------------------------+    | lisi      | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |    | zhangsan  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |    +-----------+-------------------------------------------+    2 rows in set (0.00 sec)    mysql> select user_name,user_passwd from benet.users where user_name=‘zhangsan‘;        ##按條件查詢    +-----------+-------------------------------------------+    | user_name | user_passwd                               |    +-----------+-------------------------------------------+    | zhangsan  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |    +-----------+-------------------------------------------+    1 row in set (0.00 sec)3、修改資料記錄    mysql> update benet.users set user_passwd=PASSWORD(‘‘) WHERE user_name=‘lisi‘;          ##修改users表中zhangsan的密碼為空白    Query OK, 1 row affected (0.00 sec)    Rows matched: 1  Changed: 1  Warnings: 0    mysql> select * from benet.users;    +-----------+-------------------------------------------+    | user_name | user_passwd                               |    +-----------+-------------------------------------------+    | lisi      |                                           |    | zhangsan  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |    +-----------+-------------------------------------------+    2 rows in set (0.00 sec)    修改root使用者密碼    mysql> update mysql.user set password=PASSWORD(‘123456‘) WHERE user=‘root‘;    Query OK, 4 rows affected (0.00 sec)    Rows matched: 4  Changed: 4  Warnings: 0     mysql> FLUSH PRIVILEGES;                                                               ##重新整理使用者授權,使其立即生效。    Query OK, 0 rows affected (0.00 sec)    mysql> EXIT    Bye    [[email protected] ~]# mysql -u root -p    Enter password:                                                                         ##輸入新密碼“123456”4、刪除資料記錄    mysql> delete from benet.users where user_name=‘lisi‘;                                  ##刪除表中user_name列為‘zhangsan’的使用者    Query OK, 1 row affected (0.00 sec)    mysql> select * from benet.users;    +-----------+-------------------------------------------+    | user_name | user_passwd                               |    +-----------+-------------------------------------------+    | zhangsan  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |    +-----------+-------------------------------------------+    1 row in set (0.00 sec)資料庫中預設添加了來賓使用者和本機使用者(user,password均為空白),出去安全考慮,應該產出這些來賓使用者,    mysql> select user,host,password from mysql.user where user=‘‘;                         ##顯示user列為空白的使用者資料    +------+-----------------------+----------+    | user | host                  | password |    +------+-----------------------+----------+    |      | localhost             |          |    |      | localhost.localdomain |          |    +------+-----------------------+----------+    2 rows in set (0.00 sec)    mysql> delete from mysql.user where user=‘‘;                                            ##刪除mysql.user表中user列為空白的欄位    Query OK, 2 rows affected (0.00 sec)

四、資料庫使用者授權
1、授予許可權,使用“GRANT”子句,當制動使用者不存在時,grant語句會建立新使用者,否則,grant語句會修改使用者資訊。
格式:GRANT 許可權列表 ON 庫名.表名 TO 使用者名稱@來源地址 [ IDENTIFIED BY ‘密碼‘ ]

        許可權列表:用於列出授權使用的各種資料庫操作,以逗號進行分割,如“select,insert,update”。使用“all”表示所有授權,可執行任何操作。        庫名.表名:用於指定授權操作的庫和表的名稱,其中可以使用萬用字元“*”。例如,使用“benet.*”。表示授權操作的對象為“benet”資料庫中的所有表。        使用者名稱@來源地址:用於指定的使用者名稱稱和允許訪問的客戶機地址,即誰能串連,從哪裡串連。來源地址可以使網域名稱,IP地址,還可以使用“%”萬用字元,                         表示某個地區或網段內的所有地址,如“%。benet.com” “192.168.1.%”等等。         IDENTIFIED BY:用於設定用串連資料庫時所使用的密碼字串,在建立使用者時,若省略“IDENTIFIED BY”部分,則使用者的密碼將為空白。    mysql> GRANT select on benet.* to ‘xiaoming‘@‘localhost‘ IDENTIFIED BY ‘123123‘;            ##使用grant語句建立xiaoming使用者    Query OK, 0 rows affected (0.01 sec)                                                          並授予查詢許可權2、查看許可權    mysql> show grants for ‘xiaoming‘@‘localhost‘;    +-----------------------------------------------------------------------------------------------------------------+    | Grants for [email protected]                                                                                   |    +-----------------------------------------------------------------------------------------------------------------+    | GRANT USAGE ON *.* TO ‘xiaoming‘@‘localhost‘ IDENTIFIED BY PASSWORD ‘*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1‘ |    | GRANT SELECT ON `benet`.* TO ‘xiaoming‘@‘localhost‘                                                             |    +-----------------------------------------------------------------------------------------------------------------+    2 rows in set (0.00 sec)3、撤銷許可權;REVOKE語句:用於撤銷指定使用者對資料庫的許可權,車修好後使用者仍然可以串連資料庫,單將被禁止執行對應資料庫的操作。格式:REVOKE 許可權列表 ON 資料庫名.表名 FROM 使用者名稱@來源地址mysql> revoke all on benet.* from ‘xiaoming‘@‘localhost‘;                   ##撤銷“xiaoming”對“benet.*”的所有許可權Query OK, 0 rows affected (0.00 sec)mysql> show grants for ‘xiaoming‘@‘localhost‘;                              ##確認已撤銷對benet資料庫的許可權+-----------------------------------------------------------------------------------------------------------------+| Grants for [email protected]                                                                                   |+-----------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO ‘xiaoming‘@‘localhost‘ IDENTIFIED BY PASSWORD ‘*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1‘ |+-----------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)``

(1)centos7--MySQL-5.6.36 Install Manual

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.