DBA: RDBMS (mysql) NoSQL (Redis和Mongodb)
DA1 ---DBA基礎
搭建MYSQL數據庫服務器
MYSQL數據庫服務器基本使用
Mysql數據類型
Mysql存儲引擎
記錄管理(增刪改查)
用戶管理(授權 撤銷)
數據備份
數據庫 DB
存儲數據的倉庫
Mysql 關係數據庫服務軟件 RDBMS NoSQL
學生信息---->文件(表) 文件夾(數據庫)
開源軟件:
不等於免費軟件
MySQL/MariaDB
(升級版)
Sybase (sybase可跨平臺)
PostgreSQL(可跨平臺)加州大學伯克利分校
商業軟件:
Oracle Database Oracle(甲骨文)
SQL Server (window微軟)
Access(微軟,跨平臺不開源)
DB2 (IBM,跨平臺不開源)
在主機50上運行mysql數據庫服務
安裝前環境
[root@host50 ~]# rpm -q mariadb-server mariadb
未安裝軟件包 mariadb-server
未安裝軟件包 mariadb
[root@host50 ~]# rm -rf /var/lib/mysql 配置文件
[root@host50 ~]# rm -rf /var/lib/mysql 數據存儲
裝包(軟件包來源 封包類型 開源或商業 是否跨平臺)
[root@host50 ~]# cd soft
[root@host50 soft]# cd mysql/
[root@host51 mysql]# tar -xf mysql-5.7.17.tar
[root@host50 mysql]# rpm -Uvh mysql-community-*.rpm (升級安裝)
警告:mysql-community-client-5.7.17-1.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY
錯誤:依賴檢測失敗:
perl(JSON) 被 mysql-community-test-5.7.17-1.el7.x86_64 需要
[root@host50 mysql]# yum list | grep -i perl-json
perl-JSON.noarch 2.59-2.el7 192.168.4.254_rhel7
perl-JSON-PP.noarch 2.27202-2.el7 192.168.4.254_rhel7
[root@host50 mysql]# rpm -q perl-JSON
[root@host50 mysql]# yum -y install perl-JSON (解決依賴關係)
[root@host50 mysql]# rpm -Uvh mysql-community-*.rpm #再次安裝
查看服務信息
[root@host50 mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
啓動服務
[root@host50 mysql]# systemctl start mysqld
[root@host50 mysql]# ls /var/lib/mysql
[root@host50 ~]# ls /etc/my.cnf
/etc/my.cnf
[root@host50 mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2018-05-23 10:25:35 CST; 1min 51s ago
查看服務信息
[root@host50 ~]# ps -C mysqld #查進程
PID TTY TIME CMD
3866 ? 00:00:00 mysqld
[root@host50 ~]# netstat -nutlp | grep :3306 #查堪端口
tcp6 0 0 :::3306 :::* LISTEN
修改配置文件
訪問服務(命令行 圖形訪問 web訪問 )
[root@host50 ~]# grep password /var/log/mysqld.log #數據庫日誌
2018-05-23T02:25:18.775458Z 1 [Note] A temporary password is generated for root@localhost: ZNi>u_qFL4ws #隨機密碼
[root@host50 ~]# mysql -hlocalhost -uroot -p’ZNi>u_qFL4ws’
二:重置登陸密碼
123456
[root@host50 ~]# mysql -hlocalhost -uroot -p'ZNi>u_qFL4ws'
調整密碼策略
mysql> set global validate_password_policy=0; #只檢驗密碼長度
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=6; #設定密碼長度值
Query OK, 0 rows affected (0.00 sec)
mysql> alter user root@"localhost" identified by "123456";
Query OK, 0 rows affected (0.00 sec)
[root@host50 ~]# mysql -hlocalhost -uroot -p'123456'
三.配置密碼設置永久生效
[root@host50 ~]# vim /etc/my.cnf
[mysqld]
validate_password_policy=0
Validate_password_length=6
保存退出
四:相關概念
庫 文件夾
表 文件
記錄 行
字段 列
使用SQL命令操作數據庫服務器上的數據
結構化查詢語言
SQL命令的類型
SQL命令語法規則
五 、客戶端把數據存儲到數據庫服務器上的過程
庫 類似於系統的文件夾
Show databases; //顯示已有的庫
Use 庫名; //切換庫
Select database(); //顯示當前所在的庫
Create database 庫名; //創建新庫
Show tables; //顯示已有的表
Drop database 庫名; //刪除庫
(1)建庫
mysql> create database db1;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
(2)建表
新建指定名稱的表
CREATE TABLE 庫名.表名(
字段名1 字段類型(寬度) 約束條件,
字段名2 字段類型(寬度) 約束條件,
.. ..
字段名N 字段類型(寬度) 約束條
);
mysql> use db1;
mysql> desc t1; #查看錶結構
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| name | char(10) | YES | | NULL | |
| address | char(10) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
(3)插入記錄
記錄 類似於文件裏的行
Select * from 表名; //查看錶記錄
Insert into 表名 values(值列表);//插入表記錄
Update 表名 set 字段=值; //修改表記錄 mysql> update t1 set address="leizhou";
Delete from 表名; //刪除表記錄
mysql> delete from t1;
mysql> create table t1(name char(10),address char(10));
mysql> insert into t1 values("jum","shanghai"),("fafa","guangdong");
mysql> select * from t1;
+------+-----------+
| name | address |
+------+-----------+
| tom | beijing |
| jum | shanghai |
| fafa | guangdong |
+------+-----------+
3 rows in set (0.00 sec)
(4)批量更改地址爲leizhou
mysql> update t1 set address="leizhou";
mysql> select * from t1;
+------+---------+
| name | address |
+------+---------+
| tom | leizhou |
| jum | leizhou |
| fafa | leizhou |
+------+---------+
3 rows in set (0.00 sec)
修改表的字符集,以便與中文輸入
mysql> create table t1(name char(),address()),DEFAULT CHARSET=UTF8;
mysql> alter table t1 DEFAULT CHARSET=UTF8;
mysql> show create table t1; #查看錶字符集
創建中文表格
mysql> create table 學生表(
-> 姓名 char(20),
-> 地址 char(30)
-> ) DEFAULT CHARSET=utf8;
mysql> insert into 學生表 values("張三丰","武當山");
mysql> select * from 學生表;
+-----------+-----------+
| 姓名 | 地址 |
+-----------+-----------+
| 張三丰 | 武當山|
+-----------+-----------+
mysql> create table t2(
-> name char(15),
-> age tinyint(2) unsigned,
-> birthday date,
-> up_time time,
-> y_star year,
-> party datetime
-> );
時間函數應用
mysql> insert into t2 values("tom",21,date(now()),082000,year(now()),now());
Query OK, 1 row affected (0.03 sec)
mysql> select * from t2;
+------+------+------------+----------+--------+---------------------+
| name | age | birthday | up_time | y_star | party |
+------+------+------------+----------+--------+---------------------+
| bob | 21 | 2018-06-13 | 08:20:00 | 1990 | 2018-06-23 23:25:59 |
| tom | 21 | 2018-05-23 | 08:20:00 | 2018 | 2018-06-08 23:54:59 |
| tom | 21 | 2018-05-23 | 08:20:00 | 2018 | 2018-05-23 17:56:54 |
+------+------+------------+----------+--------+---------------------+
mysql> insert into t4 values(now(),now());
mysql> insert into t4(metting) values(20170302232504);
mysql> insert into t4(metting) values(20170302232504);
mysql> select * from t4;
+---------------------+---------------------+
| metting | party |
+---------------------+---------------------+
| 2018-05-24 09:22:01 | 2018-05-24 09:22:01 |
| 2017-03-02 23:25:04 | 2018-05-24 09:22:49 |
| NULL | 2016-03-02 23:25:04 |
+---------------------+---------------------+