MySQL-5.6.38 安裝部署及介紹

第1章 MySQL簡介及部署

1.1 介紹

1.1.1 什麼是數據

數據是指對客觀事件進行記錄並可以鑑別的符號,是對客觀事物的性質、狀態以及相互關係等進行記載的物理符號或這些物理符號的組合。它是可識別的、抽象的符號。


1.1.2 數據庫管理系統種類---關係型

優點:

強大的查詢功能

強一致性

二級索引

RDBMS:Oracle、MySQL、mssql(SQL Server)、PG(postgresql)

適用場景:數據安全性要求較高的應用場景


1.1.3 數據庫管理系統種類---非關係型

優點:

靈活模式

擴展性

性能

NoSQL:redis、mongodb、memcache、Hbase、neo4j

適用場景:針對性能要求較高,數據安全性要求不是太高的場景,一般是配合RDBMS使用的產品


1.2 MySQL部署

1.2.1 安裝方式

1、 rpm或yum安裝:安裝方便、安裝速度快、無法定製

2、 二進制:不需要安裝,解壓即可使用,不能定製功能

3、 編譯安裝:可定製,安裝速度慢 (5.5版本之前:./configure make make install | 5.5之後:cmake gmake)


1.2.2 編譯安裝
1.2.3 安裝環境準備

系統版本:Linux Centos-6.9 2.6.32-696.23.1.el6.x86_64

MySQL軟件版本:5.6.38

IP地址與主機名:10.0.0.51 db01


1.2.4 MySQL軟件包獲取方式

https://downloads.mysql.com/archives/community/ #官網下載


1.2.5 開始安裝

(1) 安裝依賴包:

yum install -y ncurses-devel libaio-devel gcc-c++ gcc ncurses-devel freeglut-devel


(2) 安裝cmake

yum install -y cmake


(3) 創建mysql用戶,用來管理mysql

useradd -s /sbin/nologin -M mysql


(4) 解壓軟件包

tar xf mysql-5.6.38.tar.gz


(5) 開始編譯安裝


cd mysql-5.6.38              #<====進入解壓後的目錄


cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \

-DMYSQL_DATADIR=/application/mysql-5.6.38/data \

-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0


make && make install #<======編譯安裝

#===================================

Cmake 做了什麼?

1、做了些預配置

2、影響了編譯後的程序(編譯過程會將cmake指定的配置信息硬編碼到程序文件中)

mysqld

mysql

mysql_install_db

mysqldump

mysqladmin

mysqld_safe

等。

#=====================================


ln -s /application/mysql-5.6.38/ /application/mysql          #<====創建安裝目錄的軟鏈接

cp support-files/my*.cnf /etc/my.cnf         #<===複製my.conf到etc目錄下


#==================

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql #<=====初始化數據庫

#==================

chown -R mysql.mysql /application/mysql/ #<====修改軟件路徑歸屬

cp support-files/mysql.server /etc/init.d/mysqld #<===拷貝啓動腳本到Sys-v模式目錄

chmod 700 /etc/init.d/mysqld

/etc/init.d/mysqld start #<======啓動數據庫

netstat -lntup|grep 3306 #<======檢查服務端口號

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile #<=====添加環境變量

source /etc/profile


mysql    #【回車】#啓動mysql數據庫,首次啓動沒有密碼

++++++++++++++++++++++++++++++拓展部分+++++++++++++++++++++++++++++++++++++

修改密碼:

1.例如你的 root用戶現在沒有密碼,你希望的密碼修改爲123456,那麼命令是:

mysqladmin -u root password 123456


2.如果你的root現在有密碼了(123456),那麼修改密碼爲abcdef的命令是:

mysqladmin -u root -p password abcdef

注意,命令回車後會問你舊密碼,輸入舊密碼123456之後命令完成,密碼修改成功。


3.如果你的root現在有密碼了(123456),那麼修改密碼爲abcdef的命令是:

mysqladmin -u root -p123456 password abcdef (注意-p 不要和後面的密碼分

開寫,要寫在一起,不然會出錯,錯誤如下所示)


4.使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,

不過別忘了使用PASSWORD函數。

忘記密碼:

下面我們提供了6種不同的修改mysql root用戶的密碼,與增加mysql用戶的方法。


方法一

使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,

不過別忘了使用PASSWORD函數。


方法二

使用mysqladmin,這是前面聲明的一個特例。

mysqladmin -u root -p password mypasswd

輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改爲mypasswd。

把命令裏的root改爲你的用戶名,你就可以改你自己的密碼了。

當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執行mysqladmin,

那麼這種方法就是無效的。

而且mysqladmin無法把密碼清空。

下面的方法都在mysql提示符下使用,且必須有mysql的root權限:


方法三

mysql> INSERT INTO mysql.user (Host,User,Password)

VALUES('%','jeffrey',PASSWORD('biscuit'));

mysql> FLUSH PRIVILEGES

確切地說這是在增加一個用戶,用戶名爲jeffrey,密碼爲biscuit。

在《mysql中文參考手冊》裏有這個例子,所以我也就寫出來了。

注意要使用PASSWORD函數,然後還要使用FLUSH PRIVILEGES。


方法四

和方法三一樣,只是使用了REPLACE語句

mysql> REPLACE INTO mysql.user (Host,User,Password)

VALUES('%','jeffrey',PASSWORD('biscuit'));

mysql> FLUSH PRIVILEGES


方法五

使用SET PASSWORD語句,

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');

擬也必須使用PASSWORD()函數,

但是不需要使用FLUSH PRIVILEGES。


方法六

使用GRANT ... IDENTIFIED BY語句

mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';

這裏PASSWORD()函數是不必要的,也不需要使用FLUSH PRIVILEGES。

注意: PASSWORD() [不是]以在Unix口令加密的同樣方法施行口令加密。

MySQL 忘記口令的解決辦法

如果 MySQL 正在運行,首先殺之: killall -TERM mysqld。

啓動 MySQL :bin/safe_mysqld --skip-grant-tables &

就可以不需要密碼就進入 MySQL 了。

然後就是

>use mysql

>update user set password=password("new_pass") where user="root";

>flush privileges;

重新殺 MySQL ,用正常方法啓動 MySQL 。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章