Mysql安裝解除安裝與啟停

linxueguo發表於2021-09-06

一、下載

官網:

rpm mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

二進位制:mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

原始碼:mysql-boost-5.7.33.tar.gz

建議下載使用ga 版本

二、安裝

rpm 檔案安裝

rpm 安裝方式可控性差,不推薦使用該方法。

1.  建立mysql 使用者、組

>groupadd mysql

>useradd -g mysql mysql

2.  安裝rpm

上傳rpm

mysql-community-common-5.7.26-1.el7.x86_64.rpm

mysql-community-libs-5.7.26-1.el7.x86_64.rpm

mysql-community-client-5.7.26-1.el7.x86_64.rpm

mysql-community-server-5.7.26-1.el7.x86_64.rpm

按如下順序安裝

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

3.  修改目錄屬主

chown mysql:mysql /var/lib/mysql -R

4.  啟動並檢視狀態

service mysqld start

service mysqld status

5.  修改root 初始密碼

可以在/var/log/mysqld.log 查詢臨時初始密碼

/var/log/mysqld.log

2021-04-08T02:41:43.315572Z 1 [Note] A temporary password is generated for root@localhost: .uxfpy2!FkkK

重置密碼

>mysql -uroot -p'.uxfpy2!FkkK'

mysql> set password=password('Lin_xueguo1');

/etc/my.cnf 增加配置 skip-grant-tables ,啟用無密碼登入

重啟mysql 服務並登入

service mysqld restart

修改root 密碼

mysql>use mysql

mysql>select host,user,authentication_string from user;

mysql>update user set host='%',authentication_string=password('123456') where user='root';

或者使用

mysql>alter user 'root'@'%' identified by '123456';

重新整理許可權並生效

mysql>flush privileges;

任何主機透過使用者root 和密碼 123456 連線到 mysql 伺服器,並授權所有許可權

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

 

6.  修改mysql

/etc/my.cnf

port=13306

啟動報錯

4 08 11:09:32 lxgmc2 python[11571]: SELinux is preventing /usr/sbin/mysqld from name_bind access on the tcp_socket port 13306.

根據提示配置埠

semanage port -a -t mysqld_port_t -p tcp 13306

登入指定ip port

mysql -uroot -P 13306 -h 192.168.247.189 -p

7.  重要目錄及檔案

目錄     目錄內容

/usr/bin     客戶端程式和指令碼

/usr/sbin     mysqld 伺服器

/var/lib/mysql     日誌檔案,資料庫

/usr/include/mysql   包含( ) 檔案

/usr/lib/mysql    

/usr/share/doc/packages 文件

/usr/share/mysql   錯誤訊息和字符集檔案

/usr/share/sql-bench   基準程式

 

預設配置檔案目錄

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

配置檔案

/etc/my.cnf

 

8. 啟動指令碼管理

使用rpm 安裝 mysql ,系統預設會配置好 mysql 服務、開機自啟動、環境變數,無需人工處理。

二進位制安裝

1.  建立mysql 使用者

>groupadd mysql

>useradd -g mysql mysql

 

2.  上傳安裝介質

 

先檢查要安裝的Linux 伺服器 cglib 版本號,命令 strings /lib64/libc.so.6 | grep ^GLIBC ,檢視其是否有相應 glibc 版本

 

只有在系統列表中的cglib 才可以安裝,以免對不上還需要升級系統 cglib

 

3.  解壓到指定目錄

>tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /app/mysql

 

4.  目錄檔案規劃

目錄     目錄內容

/usr/bin     客戶端程式和指令碼

/usr/sbin     mysqld 伺服器

/var/lib/mysql     日誌檔案,資料庫

/usr/include/mysql   包含( ) 檔案

/usr/lib/mysql    

/usr/share/doc/packages 文件

/usr/share/mysql   錯誤訊息和字符集檔案

/usr/share/sql-bench   基準程式

 

預設配置檔案目錄

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file= /var/lib/mysql/mysqld/mysqld.pid

 

5.  主目錄處理

[root@lxgmc2 app]# mv mysql-5.7.22-linux-glibc2.12-x86_64 /var/lib/mysql/

[root@lxgmc2 mysql]# mkdir data

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql/ -R

 

6.  建立配置檔案及相關目錄

修改配置檔案:/etc/my.cnf ,配置不對的話 , 後面初始化不全 , 會拿不到預設密碼。

>vi /etc/my.cnf

[mysqld]
basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
port = 13306
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 
[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
 
[mysql]
default-character-set=utf8
 
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake


建立配置檔案中的相關檔案並修改屬主

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysql.sock

[root@lxgmc2 mysql]# mkdir -p /var/lib/mysql/mysqld/

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysqld/mysqld.pid

[root@lxgmc2 mysql]# touch /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql -R

 

7.  安裝和初始化mysql

進入bin 目錄

[root@lxgmc2 bin]# cd /var/lib/mysql/bin

初始化資料庫

>./mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data

 

8.  安全啟動mysql

[root@lxgmc2 bin]# ./mysqld_safe --user=mysql &

 

檢視是否啟動成功

[root@lxgmc2 bin]# ps -ef|grep mysql

 

臨時的root 密碼在 /var/log/mysqld.log 檔案中可以找到,需要儘快修改

 

9.  登入修改root 密碼

[root@lxgmc2 support-files]# mysql -uroot -p

重置密碼

mysql> set password=password('Lin_xueguo1');

/etc/my.cnf 增加配置 skip-grant-tables ,啟用無密碼登入

重啟mysql 服務並登入

service mysqld restart

修改root 密碼

mysql>use mysql

mysql>select host,user,authentication_string from user;

mysql>update user set host='%',authentication_string=password('123456') where user='root';

或者使用

mysql>alter user 'root'@'%' identified by '123456';

重新整理許可權並生效

mysql>flush privileges;

任何主機透過使用者root 和密碼 123456 連線到 mysql 伺服器,並授權所有許可權

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

 

注意:

配置[mysqld]socket=/var/lib/mysql/mysql.sock 不是預設的 /tmp/mysql.sock ,則需要在 [client] 中也配置 socket=/var/lib/mysql/mysql.sock ,否則在使用命令連線 mysql 的時候需要加上引數 -S /var/lib/mysql/mysql.sock

 

10.  啟動指令碼管理

新增mysql/bin 到使用者環境變數

 

 

設定開機自啟動

目錄不是預設的路徑,需要手動配置mysql.server

[root@lxgmc2 support-files]# vi /var/lib/mysql/support-files/mysql.server

 

複製到 /etc/init.d

[root@lxgmc2 support-files]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysql -a

 

新增服務配置

檢視mysql 服務是否在服務配置中

chkconfig --list mysql

 

新增到chkconfig

 

驗證

 

原始碼安裝

1.  建立mysql 使用者

>groupadd mysql

>useradd -g mysql mysql

 

2.  上傳安裝介質

使用包含 boost 庫的版本 mysql-boost-5.7.33.tar.gz

 

3.  解壓

tar -zxvf mysql-boost-5.7.33.tar.gz  -C /app/mysql/

 

4.  目錄檔案規劃

目錄     目錄內容

/usr/bin     客戶端程式和指令碼

/usr/sbin     mysqld 伺服器

/var/lib/mysql     日誌檔案,資料庫

/usr/include/mysql   包含( ) 檔案

/usr/lib/mysql    

/usr/share/doc/packages 文件

/usr/share/mysql   錯誤訊息和字符集檔案

/usr/share/sql-bench   基準程式

 

預設配置檔案目錄

Basedir=/var/lib/mysql

datadir=/var/lib/mysql/data

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file= /var/lib/mysql/mysqld/mysqld.pid

 

5.  主目錄處理

[root@lxgmc2 mysql]# mkdir /var/lib/mysql/data -p

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql/ -R

 

6.  建立配置檔案及相關目錄

修改配置檔案:/etc/my.cnf ,配置不對的話 , 後面初始化不全 , 會拿不到預設密碼。

>vi /etc/my.cnf

[mysqld]
basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
port = 13306
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 
[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
 
[mysql]
default-character-set=utf8
 
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake


建立配置檔案中的相關檔案並修改屬主

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysql.sock

[root@lxgmc2 mysql]# mkdir -p /var/lib/mysql/mysqld/

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysqld/mysqld.pid

[root@lxgmc2 mysql]# touch /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql -R

 

 

7.  編譯安裝mysql -5.7.33

安裝編譯軟體和依賴

yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm

yum install -y ncurses*

yum install gcc gcc-c++ -y

yum install -y bison

編譯

>cd /app/mysql/mysql-5.7.3

#配置中的目錄根據規劃設定
#預編譯
>cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ 
-DCMAKE_INSTALL_PREFIX=/var/lib/mysql \                ---mysql安裝主目錄
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \          ---連通訊檔案位置
-DDEFAULT_CHARSET=utf8 \                            ---預設字元
-DDEFAULT_COLLATION=utf8_general_ci \                 ---檢驗字元
-DMYSQL_DATADIR=/var/lib/mysql/data \             ---mysql資料存放目錄
-DSYSCONFDIR=/etc/my.cnf \                         ---mysql配置檔案
-DWITH_MYISAM_STORAGE_ENGINE=1 \                ---支援MYIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              ---支援 INNODB引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \               ---支援安裝資料庫分割槽
-DENABLE_DEBUG_SYNC=0 \
-DENABLED_LOCAL_INFILE=1 \                      ---允許從本地匯入資料
-DENABLED_PROFILING=1 \                       
-DMYSQL_TCP_PORT=13306 \                          ---mysql埠
-DWITH_DEBUG=0 \                              ---禁止除錯模式
-DWITH_SSL=yes \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=boost/boost_1_59_0
 
#編譯(耗時較長)
>make && make install


完成安裝

8.  環境變數配置及啟動指令碼管理

新增mysql/bin 到使用者環境變數

 

 

設定開機自啟動

目錄不是預設的路徑,需要手動配置mysql.server

[root@lxgmc2 support-files]# vi /var/lib/mysql/support-files/mysql.server

 

複製到 /etc/init.d

[root@lxgmc2 support-files]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysql -a

 

新增服務配置

檢視mysql 服務是否在服務配置中

chkconfig --list mysql

 

新增到chkconfig

 

驗證 (mysql 初始化並開啟以後 )

 

 

9.  初始化mysql

  初始化MySQL ,切記 --defaults-file=/etc/my.cnf 要放在引數的第一位,初始化資訊可以在 MySQL errorlog 中檢視,並且在 errorlog 會生成一個 root 的隨機密碼,該隨機密碼僅僅為 root@localhost 使用者所有。

>m ysqld  -- initialize  -- basedir=/ var/lib /mysql   datadir=/ var/lib /mysql/data  -- user=mysql

10.  安全啟動mysql

[root@lxgmc2 bin]# ./mysqld_safe --user=mysql &

 

檢視是否啟動成功

[root@lxgmc2 bin]# ps -ef|grep mysql

 

臨時的root 密碼在 /var/log/mysqld.log 檔案中可以找到,需要儘快修改

 

11.  登入修改root 密碼

[root@lxgmc2 support-files]# mysql -uroot -p

重置密碼

mysql> set password=password('Lin_xueguo1');

/etc/my.cnf 增加配置 skip-grant-tables ,啟用無密碼登入

重啟mysql 服務並登入

service mysqld restart

修改root 密碼

mysql>use mysql

mysql>select host,user,authentication_string from user;

mysql>update user set host='%',authentication_string=password('123456') where user='root';

或者使用

mysql>alter user 'root'@'%' identified by '123456';

重新整理許可權並生效

mysql>flush privileges;

任何主機透過使用者root 和密碼 123456 連線到 mysql 伺服器,並授權所有許可權

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

 

注意:

配置[mysqld]socket=/var/lib/mysql/mysql.sock 不是預設的 /tmp/mysql.sock ,則需要在 [client] 中也配置 socket=/var/lib/mysql/mysql.sock ,否則在使用命令連線 mysql 的時候需要加上引數 -S /var/lib/mysql/mysql.sock

 

 

三、解除安裝

rpm 安裝方式解除安裝

查包名:rpm -qa|grep -i mysql

刪除命令:rpm -e nodeps 包名

yum 安裝方式解除安裝

1. 檢視已安裝的 mysql

命令:rpm -qa | grep -i mysql

2. 解除安裝 mysql

命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64

檢視mysql 的其它依賴: rpm -qa | grep -i mysql

// 解除安裝依賴

yum remove mysql-libs

yum remove mysql-server

yum remove perl-DBD-MySQL

yum remove mysql

二進位制/ 原始碼安裝方式解除安裝

停服務並設定開機不自啟

systemctl stop mysqld

systemctl disable mysqld

搜尋相關配置檔案並刪除

find / -name mysql

刪除mysql 使用者

userdel mysql

 

四、啟動關閉

啟動

1. service mysql start

2. mysqld_safe [--defaults-file=/etc/my.cnf] --user=mysql &

3. mysqld [--defaults-file=/etc/my.cnf] --user=mysql &

4. /var/lib/mysql/support-files/mysql.server start

5. /etc/init.d/mysql start( 等同方法 4)

 

關閉

1. service mysql stop

2. /var/lib/mysql/support-files/mysql.server stop

3. /etc/init.d/mysql stop( 等同方法 2)

4. mysqladmin -uroot -p [-S /var/lib/mysql/mysql.sock] shutdown

5. mysql> shutdown;  #above MySQL 5.7.9

 

五、資料庫管理

建立資料庫

方法1 :使用 CREATE DATABASE 語法建立

CREATE DATABASE [IF NOT EXISTS] < 資料庫名 > [[DEFAULT] CHARACTER SET < 字符集名 >] [[DEFAULT] COLLATE < 校對規則名 >];

例子:

mysql> create database lxgdb1;

 

 

方法2 :使用 mysqladmin 工具建立

mysqladmin -uroot -p create lxgdb2;

例子:

[root@lxgmc2 ~]# mysqladmin -uroot -p create lxgdb2

 

修改資料庫

使用ALTER DATABASE 語法

ALTER DATABASE [ 資料庫名 ] { [ DEFAULT ] CHARACTER SET < 字符集名 > |[ DEFAULT ] COLLATE < 校對規則名 >}

例子:

先使用show create dabase 語句檢視資料庫建立指令碼

mysql> show create database lxgdb1;

 

修改預設的字符集

mysql> alter database lxgdb1 CHARACTER SET gbk;

 

刪除資料庫

方法1 :使用 DROP DATABASE 語法

DROP DATABASE [ IF EXISTS ] < 資料庫名 >

例子:

mysql> drop database lxgdb1;

 

 

方法 2 :使用 mysqladmin 工具刪除

mysqladmin -u root -p drop lxgdb2

例子:

[root@lxgmc2 ~]# mysqladmin -uroot -p drop lxgdb2

 

 

Mysql 字符集

檢視字符集

mysql> show variables like '%char%';

 

修改字符集

如果存在不同的字符集,需要統一字符集,透過修改配置檔案重啟即可。()

>vi /etc/my.cnf

[mysql]

default-character-set=utf8

[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

character_set_client=utf8

collation_server=utf8_general_ci

修改過的編碼只對之後建立的資料庫生效。

 

六、MySQL5.7 和以前版本不同點

初始化工具不同

MySQL5.6.xx 使用的是 mysql_install_db MySQL5.7.6+ 官方推薦使用 mysqld initialize

初始化資料庫不同

MySQL5.6.xx 初始化之後存在 mysql,information_schema,performance_schema,test 四個資料庫, MySQL5.7.6+ 初始化之後存在 mysql,information_schema,performance_schema,sys 四個資料庫。

初始化使用者不同

MySQL5.6.xx 初始化之後存在 root@localhost,root@'::1',root@'hostname',''@'localhost',''@'hostname' 五個使用者, MySQL5.7.6+ 初始化之後存在 mysql.sys,root@localhost 使用者

初始化root 密碼

MySQL5.6.xx 初始化之後 root 使用者密碼為空, MySQL5.7.6+ 初始化之後會為 root@localhost 使用者生成隨機密碼。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31374736/viewspace-2790504/,如需轉載,請註明出處,否則將追究法律責任。

相關文章