Mysql安裝與基本管理

Mysql安裝與基本管理

一、MySQL介紹

MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle旗下公司。MySQL是最流行的關係型數據庫管理系統,在WEB應用方面MySQL是最好的RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。

1、mysql是什麼

mysql就是一個基於socket編寫的C/S架構的軟件

客戶端軟件:
  mysql自帶:如mysql命令,mysqldump命令等
  python模塊:如pymysql

2、數據庫管理軟件分類

分兩大類:
  關係型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql語句通用
  非關係型:mongodb,redis,memcache

可以簡單的理解爲:
    關係型數據庫需要有表結構
    非關係型數據庫是key-value存儲的,沒有表結構

二、下載安裝

1、Linux版本

#二進制rpm包安裝
yum -y install mysql-server mysql

源碼安裝見:http://www.cnblogs.com/linhaifeng/articles/7126847.html

2、Windows版本

#1、下載:MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/

#2、解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:C:\mysql-5.7.16-winx64

#3、添加環境變量
【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】

#4、初始化
mysqld --initialize-insecure

#5、啓動MySQL服務
mysqld # 啓動MySQL服務

#6、啓動MySQL客戶端並連接MySQL服務
mysql -u root -p # 連接MySQL服務器

上一步解決了一些問題,但不夠徹底,因爲在執行【mysqd】啓動MySQL服務器時,當前終端會被hang住,那麼做一下設置即可解決此問題,即將MySQL服務製作成windows服務。

注意:--install前,必須用mysql啓動命令的絕對路徑
# 製作MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install

# 移除MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove


註冊成服務之後,以後再啓動和關閉MySQL服務時,僅需執行如下命令:
# 啓動MySQL服務
net start mysql

# 關閉MySQL服務
net stop mysql

三、MySQL啓動與查看

Linux平臺下查看

[root@egon ~]# systemctl start mariadb #啓動
[root@egon ~]# systemctl enable mariadb #設置開機自啓動
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@egon ~]# ps aux |grep mysqld |grep -v grep #查看進程,mysqld_safe爲啓動mysql的腳本文件,內部調用mysqld命令
mysql     3329  0.0  0.0 113252  1592 ?        Ss   16:19   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql     3488  0.0  2.3 839276 90380 ?        Sl   16:19   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
[root@egon ~]# netstat -an |grep 3306 #查看端口
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN  
[root@egon ~]# ll -d /var/lib/mysql #權限不對,啓動不成功,注意user和group
drwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql

You must reset your password using ALTER USER statement before executing this statement.

安裝完mysql 之後,登陸以後,不管運行任何命令,總是提示這個
mac mysql error You must reset your password using ALTER USER statement before executing this statement.
解決方法:
step 1: SET PASSWORD = PASSWORD('your new password');
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;

windows平臺到服務中查看即可

四、登錄設置密碼

初始狀態下,管理員root,密碼爲空,默認只允許從本機登錄localhost
設置密碼
[root@egon ~]# mysqladmin -uroot password "123"        設置初始密碼 由於原密碼爲空,因此-p可以不用
[root@egon ~]# mysqladmin -uroot -p"123" password "456"        修改mysql密碼,因爲已經有密碼了,所以必須輸入原密碼才能設置新密碼

命令格式:
[root@egon ~]# mysql -h172.31.0.2 -uroot -p456
[root@egon ~]# mysql -uroot -p
[root@egon ~]# mysql                    以root用戶登錄本機,密碼爲空

五、破解密碼

1、Linux平臺下,破解密碼的兩種方式

方法一:刪除授權庫mysql,重新初始化

[root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授權信息全部丟失!!!
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql

方式二:啓動時,跳過授權庫

[root@egon ~]# vim /etc/my.cnf    #mysql主配置文件
[mysqld]
skip-grant-table
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql
MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> \q
[root@egon ~]# #打開/etc/my.cnf去掉skip-grant-table,然後重啓
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql -u root -p123 #以新密碼登錄

1、Windows平臺下,5.7版本mysql,破解密碼的兩種方式

方式一:

#1 關閉mysql
#2 在cmd中執行:mysqld --skip-grant-tables
#3 在cmd中執行:mysql
#4 執行如下sql:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges;

#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新啓動mysql

方式二:

#1. 關閉mysql,可以用tskill mysqld將其殺死
#2. 在解壓目錄下,新建mysql配置文件my.ini
#3. my.ini內容,指定
[mysqld]
skip-grant-tables

#4.啓動mysqld
#5.在cmd裏直接輸入mysql登錄,然後操作
update mysql.user set authentication_string=password('') where user='root and host='localhost';

flush privileges;

#6.註釋my.ini中的skip-grant-tables,然後啓動myqsld,然後就可以以新密碼登錄了

六、統一字符編碼

注:配置文件中的註釋可以有中文,但是配置項中不能出現中文

#在mysql的解壓目錄下,新建my.ini,然後配置
#1. 在執行mysqld命令時,下列配置會生效,即mysql服務啓動時生效
[mysqld]
;skip-grant-tables
port=3306
character_set_server=utf8
default-storage-engine=innodb
innodb_file_per_table=1


#解壓的目錄
basedir=E:\mysql-5.7.19-winx64
#data目錄
datadir=E:\my_data #在mysqld --initialize時,就會將初始數據存入此處指定的目錄,在初始化之後,啓動mysql時,就會去這個目錄裏找數據



#2. 針對客戶端命令的全局配置,當mysql客戶端命令執行時,下列配置生效
[client]
port=3306
default-character-set=utf8
user=root
password=123

#3. 只針對mysql這個客戶端的配置,2中的是全局配置,而此處的則是隻針對mysql這個命令的局部配置
[mysql]
;port=3306
;default-character-set=utf8
user=egon
password=4573


#!!!如果沒有[mysql],則用戶在執行mysql命令時的配置以[client]爲準

統一字符編碼

#1. 修改配置文件
[mysqld]
default-character-set=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

#mysql5.5以上:修改方式有所改動
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

#2. 重啓服務
#3. 查看修改結果:
\s
show variables like '%char%'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章