1、下載mysqld
在網頁中依次點擊:DOWNLOADS--->MySQL Community(GPL)Downloads---->MySQL Community Server
這里以下載mysql-5.6.46-winx64.zip為例
下載成功后解壓--->改名為mysql56
2、添加系統環境變量
把mysql56下bin文件的目錄路徑添加到系統的環境變量中
3、把mysql制作成系統服務
注意:在制作之前要把mysqld關掉(在命令提示符中輸入taskkill /F /PID xxxx ,xxx可以通過輸入tasklist |findstr mysqld查看)
制作:在命令提示符中輸入mysqld --install回車后就制作成功,可以通過在win+R中輸入services.msc中查看制作成功(MySQL)
此時可以通過雙擊MySQL啟動
可以在cmd中輸入:net start mysql / net stop mysql 進行開啟/關閉mysql
4、啟動
啟動服務端:
mysqld
啟動客戶端:
mysql -uroot -p -h127.0.0.1 -p 3306
如果在本機登陸mysqld客戶端可以簡寫:
mysql -uroot -p
5、修改密碼
在系統命令提示符(以管理員身份運行)中輸入mysqladmin -uroot -p password "123”,然后回車在回車就會把密碼設置成123,如果再把密碼改為456:
mysqladmin -uroot -p123 password "456" 回車就會修改成功
6、破解管理員密碼
(1)先跳過密碼登入:
#1 關閉mysql #2 在cmd中執行:mysqld --skip-grant-tables
(2)打開新的cmd輸入 mysql -uroot -p登入
(3)修改密碼:update mysql.user set password=password("123") where user="root" and host="localhost";
刷新:flush privileges
(4)在命令行中用taskkill /F /PID xxxx殺死mysqld服務,然后正常啟動mysqld
7、統一字符編碼
問題:以管理員的身份運行cmd--->mysql -uroot -p456--->\s:此時會發現表格數據中有多種編碼(latinl、gbk),需要統一改為utf8
解決方法:在mysql56目錄下新建文檔,改名為my.ini,然后用Notepad++打開,進行如下配置:
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] user="root" password="2180736" default-character-set=utf8
然后關閉再重啟mysql,編碼就會統一為utf8
8、創建用戶以及授權
連接:
默認:用戶root
創建:
create user 'alex'@'192.168.1.1' identified by '123123';
create user 'alex'@'192.168.1.%' identified by '123123';
create user 'alex' @'%' identified by '123123';
授權:
用法:
show grants for '用戶'@'IP地址' -- 查看權限
grant 權限 on 數據庫.表 to '用戶'@'IP地址' -- 授權 revoke 權限 on 數據庫.表 from '用戶'@'IP地址' -- 取消權限
例如:
grant select,insert,update on db1.t1 to 'alex'@'%'; 用戶在任何機器上都能對 db1數據庫下面的t1做查看、插入、更新操作
grant all privileges on db1.t1 to 'alex'@'%'; 給用戶授權所有功能(用戶授權給別人的功能除外)
9、基本的SQL語句
1、文件夾(庫)
增
create database db1 charset utf8;
改
alter database db1 charset gbk;
查
查看所有庫的庫名
show databases;
單獨查看某一個庫的信息
show create database db1;
刪
drop database db1;
2、文件(表)
首先切換文件夾:
use db1;
select database(); #查看當前所在的文件夾
增
create table t1(id int,name char); create table t1(id int,name char)engine=innodb default charset=utf8; create table t3(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8; *****
create table t1(
列名 類型 null,
列名 類型 not null,
列名 類型 not null auto_increment primary key,
id int,
name char(10)
)engine=innodb default charset=utf8;
# innodb 支持事務,原子性操作
# myisam myisam
auto_increment 表示:自增 (一個表里面只能有一個自增列)
primary key: 表示 約束(不能重復且不能為空); 加速查找 (一般與auto_increment 連用)
not null: 是否為空
數據類型:
1、數字:
tinyint:-128~127 0~255
int:-2147483648~2147483647 0~4294967295
bigint:-9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615
FLOAT
0.00000100000123000123001230123 (數據不精准)
DOUBLE
0.00000000000000000000100000123000123001230123
0.00000100000123000000000000000 (數據不精准)
decimal
注意:對於精度數值計算時需要用此類型,
decimal能夠儲存精確值的原因在於其內部按照字符串儲存
2、字符串:
char(m) 速度快()
char數據類型用於表示固定長度的字符串,可以包含最多達255個字符。其中m代表字符串的長度,即使數據小於m長度,也會占用m長度
varchar(10) 節省空間
varchars數據類型用於變長的字符串,可以包含最多達255個字符。其中m代表該數據類型所允許保存的字符串的最大長度,只要長度小於該最大值的字符串都可 以被保存在該數據類型中。
PS: 創建數據表定長列往前放,,,,char、varchar最多存255個字符
3、text:
上傳文件:
文件存硬盤
db存路徑
4、時間類型:
DATETIME: YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
5、enum:枚舉類型 CREATE TABLE shirts ( name VARCHAR(40), size ENUM('x-small', 'small', 'medium', 'large', 'x-large') ); INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');
6、set:集合類型
CREATE TABLE myset (col SET('a', 'b', 'c', 'd')); INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
create table t1(
id int signed not null auto_increment primary key,
num decimal(10,5),
name char(10)
)engine=innodb default charset=utf8;
改
alter table t1 modify name char(16);
查
查看當前庫下所有的表名
show table
查看t1表的詳細信息
show create table t1;
查看表結構
desc t1;
清空
1、delete from t1;(自增情況下清空再插入數據,序號從上面遞增)
2、truncate table t1;(運行速度比上面的快 ,再插入數據序號從1開始)
刪
drop table t1;
3、文件的一行內容(記錄)
增
insert into db1.t1(id,name) values
(1,'egon'),
(2,'alex'),
(3,'lxx');
改
update db1.t1 set name='sb' where id > 1;
查
select id,name from db1.t1;
刪
delete from t1;(全部刪除)
delete from db1.t1 where name = "SB" ; (有條件的刪除)
詳見:https://www.cnblogs.com/wupeiqi/articles/5713323.html