MySQL 是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)表谊,其具有以下特點(diǎn):
- MySQL 是開源的压恒。
- MySQL 支持大型的數(shù)據(jù)庫茅主。相對(duì)于Excel來說纵刘,可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。
- MySQL 使用標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)語言形式犬第。
- MySQL 可以運(yùn)行于多個(gè)系統(tǒng)上五督,并且支持多種語言(如Python、Java瓶殃、C、C++等)副签。
- ……
本篇文章將從Window和Linux兩個(gè)系統(tǒng)中對(duì)MySQL進(jìn)行安裝和配置遥椿。
1. Window下MySQL的安裝與配置
1.1 下載MySQL
目前MySQL版本已經(jīng)更新到MySQL8基矮,官方宣傳新的版本在很多方面得到了提升。但為了追求穩(wěn)定冠场,建議大家選用MySQL5.7版本家浇。
進(jìn)入MySQL官網(wǎng)(https://dev.mysql.com/downloads/mysql/),選擇MySQL Community Server(社區(qū)版碴裙,該版本完全免費(fèi)钢悲,但官方不支持技術(shù)支持),根據(jù)Window系統(tǒng)是32位還是64位舔株,選擇合適的5.7版本莺琳。
1.2 安裝MySQL
下載完后,將 zip 包解壓到相應(yīng)的目錄(一定要選用英文文件夾载慈,以避免出現(xiàn)不必要的錯(cuò)誤)惭等。這里將解壓后的文件夾放在 D:\mysql-5.7.28 下。解壓后的文件如下圖所示:
1.3 配置MySQL
1)配置環(huán)境變量
MySQL安裝目錄下有一個(gè)bin目錄办铡,這個(gè)目錄里是MySQL的核心內(nèi)容辞做,里面包含一些可執(zhí)行的文件或腳本。通過配置系統(tǒng)環(huán)境變量寡具,可以直接在終端執(zhí)行相關(guān)命令秤茅。下面介紹怎樣手動(dòng)配置環(huán)境變量。具體操作步驟如下:
-
桌面右鍵我的電腦 --> 屬性 --> 高級(jí)系統(tǒng)屬性 --> 高級(jí)童叠。
-
點(diǎn)擊環(huán)境變量(N) --> 在系統(tǒng)變量中選擇path變量框喳。
-
單擊編輯,在編輯系統(tǒng)對(duì)話框中拯钻,將MySQL應(yīng)用程序的bin目錄(D:\mysql-5.7.28\bin)添加到變量值當(dāng)中帖努,用分號(hào)將其與其他路徑分隔開。
點(diǎn)擊確定粪般,這樣就完成了配置環(huán)境變量的操作拼余。
2)更改MySQL配置
接下來,還需要對(duì)MySQL進(jìn)行一些基本配置亩歹。在MySQL文件夾中新建my.ini配置文件匙监,編輯my.ini配置以下基本信息:
# MySQL客戶端參數(shù)
[client]
# 設(shè)置MySQL客戶端默認(rèn)字符集
default-character-set=utf8
# MySQL服務(wù)端參數(shù)
[mysqld]
# 設(shè)置3306端口
port = 3306
# 設(shè)置MySQL安裝目錄
basedir =D:\\mysql-5.7.28
# 允許最大連接數(shù)
max_connections=20
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
1.4 啟動(dòng)及登錄MySQL
1) 啟動(dòng)MySQL
- 以管理員身份打開CMD命令行工具,切換目錄小作。
C:\Users\Administrator> d:
d:\> cd d:/mysql-5.7.28/bin
- 執(zhí)行以下命令:
d:\mysql-5.7.28\bin> mysqld --initialize-insecure --user=mysql
將看到在安裝目錄下亭姥,多出一個(gè)data文件夾。
- 輸入以下命令顾稀,安裝MySQL服務(wù)达罗,出現(xiàn)“Service successfully installed”,代表服務(wù)安裝成功:
d:\mysql-5.7.28\bin> mysqld --install mysql5.7 --defaults-file="D:\\mysql-5.7.28\\my.ini"
Service successfully installed.
- 輸入以下命令,啟動(dòng)MySQL服務(wù):
d:\mysql-5.7.28\bin> net start mysql5.7
mysql5.7 服務(wù)正在啟動(dòng) .
mysql5.7 服務(wù)已經(jīng)啟動(dòng)成功粮揉。
2)登錄MySQL
當(dāng)MySQL服務(wù)已經(jīng)運(yùn)行時(shí)巡李,可通過MySQL自帶的客戶端工具登錄MySQL數(shù)據(jù)庫中,輸入以下格式命令:
mysql -h 主機(jī)名 -u 用戶名 -p
如果需要登錄本機(jī)的MySQL數(shù)據(jù)庫扶认,只需輸入以下命令:
mysql -u root -p
按回車確認(rèn)侨拦,若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄。登錄成功后如下圖所示:
1.5 修改MySQL數(shù)據(jù)庫的用戶名和密碼
1)修改數(shù)據(jù)庫用戶名
# 進(jìn)入數(shù)據(jù)庫
mysql> use mysql
Database changed
# 更改用戶名
mysql> update user set user='Newname' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
# 刷新權(quán)限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 查詢目前已有的用戶名
mysql> select user from mysql.user;
+---------------+
| user |
+---------------+
| Newname |
| mysql.session |
| mysql.sys |
+---------------+
3 rows in set (0.00 sec)
2)修改數(shù)據(jù)庫的登錄密碼
# 修改數(shù)據(jù)庫登錄密碼
mysql> alter user 'root'@'localhost' identified by 'youpassword';
# 刷新權(quán)限
mysql> flush privileges;
其中root為使用者的用戶名辐宾,youpassword為要修改的新密碼狱从,修改完以后,繼續(xù)刷新一次數(shù)據(jù)庫叠纹,就可以使用自己修改過得密碼登錄了季研。
2. Linux下MySQL的安裝與配置
2.1 下載MySQL
同樣到MySQL官網(wǎng)進(jìn)行下載,Linux版本的MySQL推薦下載Linux-Generic版本吊洼。
2.2 安裝MySQL
-
使用Xftp工具將下載好的安裝包上傳到Linux上训貌。
創(chuàng)建用戶組及用戶名
# 添加用戶組
[root@localhost ~]# groupadd mysql
# 新建mysql用戶
[root@localhost ~]# useradd -r -g mysql mysql
- 安裝依賴
[root@localhost ~]# yum install -y libaio
- 解壓并創(chuàng)建快捷鏈接
# 解壓
[root@localhost ~]# tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 進(jìn)入解壓后的文件夾
[root@localhost ~]# cd /usr/local
# 創(chuàng)建快捷鏈接
[root@localhost local]# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql
- 添加環(huán)境變量
[root@localhost local]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
[root@localhost local]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
[root@localhost local]# source /etc/profile
[root@localhost local]# source ~/.bashrc
- 創(chuàng)建數(shù)據(jù)和日志目錄
# 創(chuàng)建目錄
[root@localhost local]# mkdir -p /data/mysql/{data,binlogs,log}
[root@localhost local]# mkdir -p /usr/local/mysql/{etc,run}
# 創(chuàng)建快捷鏈接
[root@localhost local]# ln -sv /data/mysql/data/ /usr/local/mysql/data
[root@localhost local]# ln -sv /data/mysql/log/ /usr/local/mysql/log
[root@localhost local]# ln -sv /data/mysql/binlogs/ /usr/local/mysql/binlogs
# 授予權(quán)限
[root@localhost local]# chown -R mysql.mysql /data/mysql/
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/{data,binlogs,log,etc,run}
- 配置my.cnf
# 配置my.cnf
[root@localhost local]# vi /usr/local/mysql/etc/my.cnf
# 創(chuàng)建快捷鏈接
ln -sv /usr/local/mysql/etc/my.cnf /etc/my.cnf
配置信息如下,可根據(jù)個(gè)人需求進(jìn)行更改冒窍。
[client]
port=3306
socket=/usr/local/mysql/run/mysql.sock
[mysqld]
port=3306
socket=/usr/local/mysql/run/mysql.sock
pid_file=/usr/local/mysql/run/mysql.pid
datadir=/usr/local/mysql/data
skip-external-locking
key_buffer_size=32M
max_allowed_packet=16M
table_open_cache=1024
sort_buffer_size=1m
net_buffer_length=8K
read_buffer_size=1m
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
thread_cache_size=16
query_cache_size=32M
tmp_table_size=32M
performance_schema_max_table_instances=500
explicit_defaults_for_timestamp=true
#skip-networking
max_connections=500
max_connect_errors=100
open_files_limit=65535
slow_query_log=on
long_query_time=2
slow_query_log_file=/usr/local/mysql/log/mysql_slow_query.log
log-error=/usr/local/mysql/log/mysql_error.log
log-bin=/usr/local/mysql/binlogs/mysql-bin
binlog_format=mixed
server-id=10
expire_logs_days=10
early-plugin-load=""
default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_data_home_dir=/usr/local/mysql/data
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/usr/local/mysql/data
innodb_buffer_pool_size=128M
innodb_log_file_size=32M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
[mysqldump]
quick
max_allowed_packet=16M
[myisamchk]
key_buffer_size=32M
sort_buffer_size=768K
read_buffer=2M
write_buffer=2M
[mysqlhotcopy]
interactive-timeout
- 初始化MySQL
# 初始化MySQL递沪,此步驟會(huì)產(chǎn)生臨時(shí)密碼,需記錄下來
[root@localhost mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 初始化ssl
[root@localhost mysql]# mysql_ssl_rsa_setup --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
9.設(shè)置啟動(dòng)服務(wù)
[root@localhost mysql]# vi /usr/lib/systemd/system/mysqld.service
具體設(shè)置參數(shù)如下:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/run/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/run/mysqld.pid $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
- 設(shè)置開機(jī)啟動(dòng)
[root@localhost mysql]# systemctl enable mysqld.service
# 查看是否以啟動(dòng)
[root@localhost mysql]# systemctl is-enabled mysqld
- 啟動(dòng)MySQL
[root@localhost mysql]# systemctl start mysqld
# 登錄MySQL
[root@localhost mysql]# mysql -u root -p
登錄MySQL時(shí)综液,需鍵入密碼款慨,此密碼為初始化MySQL時(shí)產(chǎn)生的臨時(shí)密碼。
- 修改密碼
登錄成功后谬莹,將臨時(shí)密碼修改為自己的密碼檩奠。
mysql> set password xxxxx;
# 退出數(shù)據(jù)庫
mysql> exit
3. 使用Navicat對(duì)MySQL進(jìn)行管理及開發(fā)
Navicat是一套快速、可靠并價(jià)格相當(dāng)便宜的數(shù)據(jù)庫管理工具附帽,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè)埠戳。它的設(shè)計(jì)符合數(shù)據(jù)庫管理員、開發(fā)人員及中小企業(yè)的需要蕉扮。Navicat 是以直覺化的圖形用戶界面而建的整胃,讓你可以以安全并且簡單的方式創(chuàng)建、組織喳钟、訪問并共用信息屁使。
它可以對(duì)本機(jī)或遠(yuǎn)程的MySQL或者其他數(shù)據(jù)庫(如SQL Server、SQLite奔则、Oracle等)進(jìn)行管理或者開發(fā)蛮寂。
Navicat Premium是一個(gè)可多重連接的數(shù)據(jù)庫管理工具,可同時(shí)連接不同類型的數(shù)據(jù)庫易茬,能簡單快速地在各種數(shù)據(jù)庫系統(tǒng)間傳輸數(shù)據(jù)酬蹋。其主要有以下幾種功能:
3.1 Navicat的使用
下載
根據(jù)自己的電腦配置在Navicat官網(wǎng)下載相應(yīng)的安裝包,官方提供14 天 免費(fèi)的全功能 Navicat 試用版。-
連接MySQL服務(wù)
Navicat下載安裝完成后除嘹,其界面如下所示:
1)新建連接写半,點(diǎn)擊菜單欄中的文件 --> 新建連接 ---> MySQL,進(jìn)入創(chuàng)建連接界面尉咕。
2)添加鏈接名,以及本地IP或localhost璃岳,以及MySQL端口號(hào)(默認(rèn)為3306)年缎,并輸入MySQL賬號(hào)及密碼。點(diǎn)擊測試連接铃慷,出現(xiàn)以下彈窗就是成功鏈接MySQL數(shù)據(jù)庫服務(wù)了单芜。
3)新建數(shù)據(jù)庫,右鍵點(diǎn)擊剛建好的數(shù)據(jù)庫犁柜,點(diǎn)擊新建數(shù)據(jù)庫洲鸠,進(jìn)入新建數(shù)據(jù)庫界面。
3)刪除數(shù)據(jù)庫馋缅,右鍵點(diǎn)擊需要?jiǎng)h除的數(shù)據(jù)庫扒腕,點(diǎn)擊確認(rèn)刪除即可。
4)創(chuàng)建數(shù)據(jù)表萤悴,選擇數(shù)據(jù)庫瘾腰,右鍵點(diǎn)擊表,點(diǎn)擊新建表即可覆履。
5)修改數(shù)據(jù)表蹋盆,選中所需修改的數(shù)據(jù)表,右鍵點(diǎn)擊設(shè)計(jì)表硝全,然后和創(chuàng)建數(shù)據(jù)表一樣去編輯字段栖雾,數(shù)據(jù)類型,完整性約束等伟众。
6)刪除數(shù)據(jù)表析藕,選中需要?jiǎng)h除的數(shù)據(jù)表,右鍵選擇刪除表即可赂鲤。
7)查詢數(shù)據(jù)噪径,選中需要查詢的某個(gè)數(shù)據(jù)庫,右鍵選擇新建查詢数初,進(jìn)入查詢界面找爱,在里面輸入查詢語句即可。
8)備份數(shù)據(jù)庫泡孩,選擇需要備份的數(shù)據(jù)庫车摄,右鍵選擇轉(zhuǎn)儲(chǔ)SQL文件,選擇結(jié)構(gòu)和數(shù)據(jù),存儲(chǔ)導(dǎo)數(shù)需要保存的位置吮播,確定即可变屁。
3.2 Navicat的快捷鍵
Navicat的快捷鍵可通過官網(wǎng)獲取(https://www.navicat.com.cn/manual/online_manual/cn/navicat/win_manual/index.html#/hot_keys)意狠,其主要快捷鍵如下:
至此粟关,MySQL在Window和Linux兩個(gè)平臺(tái)上安裝及使用已全部完成。