初識數據庫

什麼是數據庫

數據存放的庫linux

爲何使用數據庫

以前使用的是Excel來進行管理數據,redis

Excel的缺點:
1. 管理不了大量的數據 (10W量級的數據)
2. 不能併發操做同一個數據表格
3. 不支持高級的操做, 好比:分組,連表等sql

MySQL介紹

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

MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。數據庫

MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言。MySQL 軟件採用了雙受權政策,分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼 這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。vim

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

數據庫管理軟件的分類

數據庫管理軟件能夠分紅兩類:服務器

關係型數據庫:有表結構架構

非關係新數據庫:沒有表結構,key-value存儲

關係型數據庫

如:mysql、sqlserver、oracle、sqllite

非關係型數據庫

如:redis、MongoDB、memcache

MySQL架構

流程:

一、 mysql服務端先啓動,監聽在某一個特定的端口(3306)

二、 mysql客戶端鏈接服務端

三、 鏈接成功後,能夠發送相關操做命令,操做服務端存儲的數據

下載安裝

Linux版本

yum安裝:

yum -y install mysql mysql-server

源碼安裝:

1.解壓tar包
tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21

2.添加用戶與組
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql-5.6.21

3.安裝數據庫
su mysql
cd mysql-5.6.21/scripts
./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data

4.配置文件
cd /software/mysql-5.6.21/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql   #若mysql的安裝目錄是/usr/local/mysql,則可省略此步
修改文件中的兩個變動值
basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data

5.配置環境變量
vim /etc/profile
export MYSQL_HOME="/software/mysql-5.6.21"
export PATH="$PATH:$MYSQL_HOME/bin"
source /etc/profile

6.添加自啓動服務
chkconfig --add mysql
chkconfig mysql on

7.啓動mysql
service mysql start

8.登陸mysql及改密碼與配置遠程訪問
mysqladmin -u root password 'your_password'     #修改root用戶密碼
mysql -u root -p     #登陸mysql,須要輸入密碼
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;     #容許root用戶遠程訪問
mysql>FLUSH PRIVILEGES;     #刷新權限

Windows版本

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

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

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

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

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

注意:--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軟件基本管理

登陸設置密碼

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

命令格式:
[root@xxx ~]# mysql -h172.31.0.2 -uroot -p456

命令參數:

-h:指定鏈接主機

-p:須要輸入登陸密碼

-u:指定鏈接用戶

-P:指定鏈接端口,默認3306

忘記密碼

Linux版本

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

方法二:啓動時,跳過受權庫

Windows版本

#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

初識Sql語句

SQL語言主要用於存取數據、查詢數據、更新數據和管理關係數據庫系統,SQL語言由IBM開發。SQL語言分爲3種類型:

  • DDL語句 數據庫定義語言: 數據庫、表、視圖、索引、存儲過程,例如CREATE DROP ALTER
  • DML語句 數據庫操縱語言: 插入數據INSERT、刪除數據DELETE、更新數據UPDATE、查詢數據SELECT
  • DCL語句 數據庫控制語言: 例如控制用戶的訪問權限GRANT、REVOKE
#1. 操做文件夾
        增:create database db1 charset utf8;
        查:show databases;
        改:alter database db1 charset utf8;  # 只能修改數據庫的字符編碼
        刪除: drop database db1;


#2. 操做文件
    先切換到文件夾下:use db1
        增:create table t1(id int,name char);
        查:show tables
        改:alter table t1 modify name char(3);
              alter table t1 change name name1 char(2);
        刪:drop table t1;
    

#3. 操做文件中的內容/記錄
        增:insert into t1 values(1,'xxx'),(2,'xxx'),(3,'xxx');
        查:select * from t1;
        改:update t1 set name='sb' where id=2;
        刪:delete from t1 where id=1;

        清空表:
            delete from t1; #若是有自增id,新增的數據,仍然是以刪除前的最後同樣做爲起始。
            truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始,

            auto_increment 表示:自增
            primary key 表示:約束(不能重複且不能爲空);加速查找

mysql的帳號操做

#進入mysql客戶端
$mysql
mysql> select user();  #查看當前用戶
mysql> exit     # 也能夠用\q quit退出

# 默認用戶登錄以後並無實際操做的權限
# 須要使用管理員root用戶登錄
$ mysql -uroot -p   # mysql5.6默認是沒有密碼的
#遇到password直接按回車鍵
mysql> set password = password('root'); # 給當前數據庫設置密碼

# 建立帳號
mysql> create user 'xxx'@'192.168.10.%'   IDENTIFIED BY '123';# 指示網段
mysql> create user 'xxx'@'192.168.10.5'   # 指示某機器能夠鏈接
mysql> create user 'xxx'@'%'                    #指示全部機器均可以鏈接  
mysql> show grants for 'xxx'@'192.168.10.5';查看某個用戶的權限 
# 遠程登錄
$ mysql -uroot -p123 -h 192.168.10.3

# 給帳號受權
mysql> grant all on *.* to 'xxx'@'%';
mysql> flush privileges;    # 刷新使受權當即生效

# 建立帳號並受權
mysql> grant all on *.* to 'xxx'@'%' identified by '123'
相關文章
相關標籤/搜索