聲明:/usr/local/mysql目錄是它的默認(rèn)安裝目錄,統(tǒng)一放在這會方便很多,但我就是犯賤啊
1.檢查系統(tǒng)版本:
cat /etc/system-release
[root@VM_0_3_centos ~]# cat /etc/system-release
CentOS Linux release 7.5.1804 (Core)
uname -a64位還是32位
[root@VM_0_3_centos mysql]# uname -a
... x86_64 GNU/Linux
2.檢查是否安裝了 mysql
rpm -qa mysql*rpm檢查
[root@VM_0_3_centos ~]# rpm -qa mysql*
mysql-community-common-5.6.40-2.el7.x86_64
mysql-community-client-5.6.40-2.el7.x86_64
mysql-community-server-5.6.40-2.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-libs-5.6.40-2.el7.x86_64
yum list mysql* yum檢查
[root@VM_0_3_centos ~]# yum list mysql*
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
Installed Packages#已安裝的軟件包
mysql-community-client.x86_64 5.6.40-2.el7 @mysql56-community
mysql-community-common.x86_64 5.6.40-2.el7 @mysql56-community
mysql-community-libs.x86_64 5.6.40-2.el7 @mysql56-community
mysql-community-release.noarch el7-5 installed
mysql-community-server.x86_64 5.6.40-2.el7 @mysql56-community
Available Packages #可用的軟件包
MySQL-python.x86_64 1.2.5-1.el7 os
MySQL-zrm.noarch 3.0-17.el7 epel
mysql++.x86_64 3.1.0-12.el7 epel
mysql++-devel.x86_64 3.1.0-12.el7 epel
mysql++-manuals.x86_64 3.1.0-12.el7 epel
mysql-community-bench.x86_64 5.6.40-2.el7 mysql56-community
mysql-community-client.i686 5.6.40-2.el7 mysql56-community
mysql-community-common.i686 5.6.40-2.el7 mysql56-community
mysql-community-devel.i686 5.6.40-2.el7 mysql56-community
mysql-community-devel.x86_64 5.6.40-2.el7 mysql56-community
mysql-community-embedded.i686 5.6.40-2.el7 mysql56-community
mysql-community-embedded.x86_64 5.6.40-2.el7 mysql56-community
mysql-community-embedded-devel.i686 5.6.40-2.el7 mysql56-community
mysql-community-embedded-devel.x86_64 5.6.40-2.el7 mysql56-community
mysql-community-libs.i686 5.6.40-2.el7 mysql56-community
mysql-community-test.x86_64 5.6.40-2.el7 mysql56-community
mysql-connector-java.noarch 1:5.1.25-3.el7 os
mysql-connector-odbc.x86_64 8.0.11-1.el7 mysql-connectors-community
mysql-connector-odbc-debuginfo.x86_64 8.0.11-1.el7 mysql-connectors-community
mysql-connector-odbc-setup.x86_64 8.0.11-1.el7 mysql-connectors-community
mysql-connector-python.noarch 2.0.4-1.el7 mysql-connectors-community
mysql-connector-python.x86_64 8.0.11-1.el7 mysql-connectors-community
mysql-connector-python-cext.x86_64 8.0.11-1.el7 mysql-connectors-community
mysql-connector-python-debuginfo.x86_64 2.1.7-1.el7 mysql-connectors-community
mysql-mmm.noarch 2.2.1-15.el7 epel
mysql-mmm-agent.noarch 2.2.1-15.el7 epel
mysql-mmm-monitor.noarch 2.2.1-15.el7 epel
mysql-mmm-tools.noarch 2.2.1-15.el7 epel
mysql-proxy.x86_64 0.8.5-2.el7 epel
mysql-proxy-devel.x86_64 0.8.5-2.el7 epel
mysql-ref-manual-5.6-en-html-chapter.noarch 1-20180227 mysql56-community
mysql-ref-manual-5.6-en-pdf.noarch 1-20180227 mysql56-community
mysql-router.x86_64 8.0.11-1.el7 mysql-tools-community
mysql-router-debuginfo.x86_64 8.0.11-1.el7 mysql-tools-community
mysql-shell.x86_64 8.0.11-1.el7 mysql-tools-community
mysql-shell-debuginfo.x86_64 8.0.11-1.el7 mysql-tools-community
mysql-utilities.noarch 1.6.5-1.el7 mysql-tools-community
mysql-utilities-extra.noarch 1.5.6-1.el7 mysql-tools-community
mysql-workbench-community.x86_64 6.3.10-1.el7 mysql-tools-community
mysql-workbench-community-debuginfo.x86_64 6.3.10-1.el7 mysql-tools-community
mysqlreport.noarch 3.5-11.el7 epel
mysqltuner.noarch 1.6.0-1.el7 epel
- 已安裝需要卸載干凈
yum remove mysql*yum卸載
rpm -e mysql*rpm卸載
[root@VM_0_3_centos ~]# rpm -e mysql*
error: package mysql* is not installed
說明yum已經(jīng)卸載干凈了
檢查一下系統(tǒng)是否存在
mariadb數(shù)據(jù)庫,如果有,一定要卸載掉,否則可能與 mysql 產(chǎn)生沖突。
系統(tǒng)安裝模式的是最小安裝,所以沒有這個數(shù)據(jù)庫。
檢查是否安裝了 mariadb:rpm -qa | grep mariadb
如果有就使勁卸載干凈:
systemctl stop mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
檢查一下 linux 系統(tǒng)的虛擬內(nèi)存大小,如果內(nèi)存不足 1G(如果是虛擬機(jī)就是你建立虛擬機(jī)時候分配的內(nèi)存),啟動 mysql 的時候可能會產(chǎn)生下面這個錯誤提示:
Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.[FAILED]
- 檢查內(nèi)存大小
cat /proc/meminfo | grep MemTotal
提示:1千兆字節(jié)(gb)=1048576千字節(jié)(kb)
[root@VM_0_3_centos mysql]# cat /proc/meminfo | grep MemTotal
MemTotal: 1882884 kB #1.79G
-
找到以前的數(shù)據(jù)庫目錄并刪除(根據(jù)個人了)
rm -rf mysql -
找打以前的日志并刪除
rm -rf mysql.log
3.重新安裝
創(chuàng)建文件夾(用于安裝的位置)
- 創(chuàng)建文件夾
/var/lib/mysql并進(jìn)入
[root@VM_0_3_centos log]# mkdir /var/lib/mysql
[root@VM_0_3_centos log]# cd /var/lib/mysql
- 去官網(wǎng)下載安裝包https://dev.mysql.com/downloads/mysql/
根據(jù)系統(tǒng)版本選擇 - 然后用工具(filezilla)上傳到一個目錄下;
我是上傳到/data目錄下的
[root@VM_0_3_centos data]# cd /data
[root@VM_0_3_centos data]# ls
mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
- 將文件解壓到當(dāng)前目錄
.tar.xz解壓是
tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
.tar.gz解壓是
tar -zvxf mysql-8.0.17-linux-glibc2.12-x86_64.tar.gz
- 重命名文件夾為mysql;將文件移動到
/var/lib目錄下
重命名命令:mv mysql-8.0.17-linux-glibc2.12-x86_64 mysql
- 添加系統(tǒng)用戶
添加 mysql 組和 mysql 用戶:
添加 mysql 組:[root@localhost ~]# groupadd mysql
添加 mysql 用戶:[root@localhost ~]# useradd -r -g mysql mysql
并使mysql是目錄/var/lib/mysql的擁有者chown -R mysql:mysql /var/lib/mysql
補(bǔ)充:查看是否存在 mysql 組:
[root@localhost ~]# more /etc/group | grep mysql
查看 msyql 屬于哪個組:[root@localhost ~]# groups mysql
查看當(dāng)前活躍的用戶列表:[root@localhost ~]# w
- 檢查是否安裝了 libaio
[root@localhost pub]# rpm -qa | grep libaio
若沒有則安裝
版本檢查:[root@localhost pub]# yum search libaio
安裝:[root@localhost pub]# yum -y install libaio
- 在
/etc下創(chuàng)建my.cnf文件并加入下面內(nèi)容
vim /etc/my.cnf
[mysqld]
#從Mysql8.0開始,默認(rèn)值的字符集為utf8mb4,不再是latin1。
#character-set-server = utf8
#collation-server = utf8_unicode_ci
ft_min_word_len = 1
# 設(shè)置mysql的安裝目錄
basedir=/var/lib/mysql
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=/var/lib/mysql/data
socket=/var/lib/mysql/mysql.sock
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
- 在
/var/lib/mysql下創(chuàng)建文件夾data用來存放數(shù)據(jù)庫的數(shù)據(jù)
[root@VM_0_3_centos mysql]# pwd
/var/lib/mysql
[root@VM_0_3_centos mysql]# mkdir data
[root@VM_0_3_centos mysql]# ls
bin data docs include lib LICENSE LICENSE.router man README README.router run share support-files var
- 初始化 mysqld (在
/var/lib/mysql執(zhí)行命令)
./bin/mysqld --initialize --user=mysql --basedir=/var/lib/mysql/ --datadir=/var/lib/mysql/data/
后面basedir和datadir參數(shù)其實可以不要,因為我們已經(jīng)在my.cnf中定義了
記住初始密碼
配置 mysql
- 環(huán)境變量配置
將mysql的bin目錄加入PATH環(huán)境變量,編輯 /etc/profile文件:
[root@localhost mysql]# vim /etc/profile
#mysql
export MYSQL_HOME=/var/lib/mysql/bin
export PATH=$PATH:$MYSQL_HOME
然后
執(zhí)行命令使其生效:[root@localhost mysql]# source /etc/profile
用 export 命令查看PATH值:[root@localhost mysql]# echo $PATH
- 設(shè)置開機(jī)啟動和服務(wù)啟動
1.復(fù)制啟動腳本到資源目錄:(在/var/lib/mysql目錄下執(zhí)行)
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
- 增加 mysqld 服務(wù)控制腳本執(zhí)行權(quán)限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld - 將 mysqld 服務(wù)加入到系統(tǒng)服務(wù)
[root@localhost mysql]# chkconfig --add mysqld - 檢查mysqld服務(wù)是否已經(jīng)生效
[root@localhost mysql]# chkconfig --list mysqld
命令輸出類似下面的結(jié)果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服務(wù)已經(jīng)生效,在2、3、4、5運(yùn)行級別隨系統(tǒng)啟動而自動啟動
以后可以使用 service 命令控制 mysql 的啟動和停止。
查看啟動項:chkconfig --list | grep -i mysql
刪除啟動項:chkconfig --del mysql
- 啟動 mysqld
[root@localhost mysql]# service mysqld start
[root@VM_0_3_centos mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@VM_0_3_centos mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@VM_0_3_centos mysql]# chkconfig --add mysqld
[root@VM_0_3_centos mysql]# chkconfig --list mysqld
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@VM_0_3_centos mysql]#
登錄 mysql
mysql -uroot -p
上面的密碼
[root@VM_0_3_centos etc]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.17
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
- 修改密碼 進(jìn)去第一件事就是修改密碼
alter user 'root'@'localhost' identified by '123456';
瀏覽一下mysql8.0
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.17 |
+-----------+
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 12:46:25 |
+-----------+
mysql> use wenda;
Database changed
mysql> create table a(id int,name varchar(20));
Query OK, 0 rows affected (0.05 sec)
mysql> show create table a;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| a | CREATE TABLE `a` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
可以看到默認(rèn)
charset=utfmb4
COLLATE=utf8mb4_0900_ai_ci
mysql> show variables like 'character_set_%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /var/lib/mysql/share/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)
查看默認(rèn)字符集
出現(xiàn)的錯誤
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)







