1. 程式人生 > >在CentOS7.5上安裝MySQL(5.7版本),掌握MySQL基本操作。

在CentOS7.5上安裝MySQL(5.7版本),掌握MySQL基本操作。

tex RoCE 使用 9.png apache error 需求 結果 加強

當今主流數據庫概略:
    在數據庫技術日益發展的今天,主流數據庫代表著成熟的數據庫技術。了解常用數據庫,就能知道數據庫技術發展的程度,以及未來的大體方向。
    數據庫分關系型數據庫和非關系型數據庫。
    關系型數據庫:基於關系模型的數據庫系統,是關系模型應用到數據庫領域的實例化。它的基本概念來自於關系模型。市場上主流商業關系型數據庫有SQL Server、Oracle、IBM DB2、MySQL等
    非關系型數據庫:也稱作NoSQL(Not Only SQL),存儲數據不以關系模型為依據,不需要固定的表格式。非關系型數據庫作為關系型數據庫的一個補充,在日益快速發展的網站時代,發揮著高效率與高性能。常用的非關系型數據庫如Memcached、Redis、MongoDB、HBase等。
    非關系型數據庫的優點:1.數據庫高並發讀寫的需求。2.對海量數據高效率存儲於訪問。3.數據庫的高擴展性於高可用性的需求。

MySQL數據庫簡介:

MySQL是一個關系型數據庫管理系統,現已被Oracle公司收購。MySQL運行與Linux操作系統之上,Apache和Nginx作為web服務器,MySQL作為後臺數據庫,PHP/Perl/Python作為腳本解釋器。這四款軟件都是免費或開源的,也就是說企業可以不花一分錢(除人工外)就能建立起一個穩定、高速的網站系統,業內稱為“LNMP”組合。因此,其以體積小、速度快、開源等特點,霸占了中小型網站相當大的市場。

MySQL 的編譯安裝過程:

安裝準備:

1·源碼包:mysql-5.7.17.tar.gz
2·源碼包:boost_1_59_0.tar.gz
3·源碼安裝 MySQL 需要 cmake 來編譯安裝。

4· MySQL 5.7 版本需要 boost 庫來支撐,所以 boost 這個庫必須下載,源碼編譯安裝的時候需要指定 boost 庫的位置。

接下來進行安裝實驗:

首先yum安裝環境包:

yum -y install \
gcc \
gcc-c++ \
ncurses \
ncurses-devel \
bison \
cmake
安裝完成:
技術分享圖片

為了加強數據庫的權限控制,建議使用專門的 MySQL 運行用戶,不需要登陸系統,也不需要創建家目錄:

useradd -s /sbin/nologin mysql

利用WinSCP工具將mysql-5.7.17.tar.gz 、boost_1_59_0.tar.gz拖到CentOS7中,然後解壓到/opt下:

tar zxvf mysql-5.7.17.tar.gz -C /opt/
技術分享圖片

解壓 boost_1_59_0.tar.gz 到 /usr/local 下 並重命名 為boost, 為了之後cmake的時候方便指定boost 庫的位子:

tar zxvf boost_1_59_0.tar.gz -C /usr/local/
cd /usr/local/
mv boost_1_59_0 boost

切換到/opt/mysql-5.7.17/下 Cmake 開始配置:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定講數據庫安裝在什麽位子
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \ 指定初始化參數文件目錄
-DSYSTEMD_PID_DIR=/usr/local/mysql \ 指定PID 文件位置
-DDEFAULT_CHARSET=utf8 \ 指定默認的字符集編碼
-DDEFAULT_COLLATION=utf8_general_ci \ 指定字符集校對規則
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \ 指定 MySQL 數據庫的存放位子
-DWITH_BOOST=/usr/local/boost \ 指定 boost 庫在什麽位子,5.7版本必須添加這個參數。
-DWITH_SYSTEMD=1

報錯註意:

如果在CMAKE的過程中有報錯,當報錯解決後,需要把源碼目錄中的CMakeCache.txt文件刪除,然後再重新CMAKE,否則錯誤依舊。

接下來make && make install進行安裝,安裝完成之後還需進行其他的操作配置。

MySQL安裝完成後,對數據庫目錄權限調整,並建立配置文件、加入以下內容:

chown -R mysql.mysql /usr/local/mysql/

vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

修改配置文件 /etc/my.cnf 的管理用戶:

chown mysql:mysql /etc/my.cnf

為了方便在任何目錄下使用 MySQL 命令,需在 /etc/profile 設置環境變量:

echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile
echo ‘export PATH‘ >> /etc/profile
source /etc/profile

初始化數據庫:

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

添加系統管理,在CentOS7操作系統中通過systemctl進行管理,並啟動 MySQL 查看端口:

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld
netstat -anpt | grep 3306

接下來可以登錄MySQL了

mysql -u root -p 登錄

接下來我將MySQL數據庫的一些基本操作整理示下:

show databases; //查看有哪些數據庫
show global variables like ‘port‘; //首先是查看mysql數據庫的端口號
create database school; //創建數據庫
use school; //進入數據庫
create table info (id int not null primary key auto_increment,name char(10) not null,score decimal(5,2),hobby int(2)); //寫入表結構
desc info; //查看表結構
show tables; //查看myschool中的表
select from info; //查看表中的數據
Insert into info (id,name,score) values (5,’tianqi’,55); //插入數據 列內容
Insert into info (id,name,score) values (5,’tianqi’,null); //插入數據 列內容
select
form info where id =6; //where條件
update info set score=75 where id=6; //更新信息 (set找出列,where確定好行)
delete from info where name=’test’; //刪除信息(刪除整行)
select from info where 1=1 order by score asc; //(給成績score)排序(升序asc、降序desc)
select
from info inner join hob where info.hobby=hob.id; //多表查詢
select info.name,info.score,hob.hobname from info inner join hob where info.hobby=hob.id; //查詢制定列
select i.name,i.score,h.hobname from info i inner join hob h where i.hobby=h.id; //別名查詢
create table infos select i.name,i.score,h.hobname from info i inner join hob h where i.hobby=h.id; //把關聯查找的結果生成一個新表
聚合函數:
統計count() 例如: select count(*) from infos;總共有多少學員 select count(1) from infos;
平均值avg() 例如:select avg(score) from infos; 成績的平均值
//刪除數據庫 例如: drop database school;
//刪除表 例如: drop table hobby;

在MySQL本地設置遠程登錄權限允許客戶端登錄:

grant all privileges on . to ‘root‘@‘%‘ identified by ‘abc123‘ with grant option;

然後開一臺Windows端進行登錄:

mysql -h 192.168.100.70 -uroot -p //遠程登錄,在客戶端進行登錄 。

暫時寫到這裏,後續再繼續補充!

在CentOS7.5上安裝MySQL(5.7版本),掌握MySQL基本操作。