目錄mysql
數據存放的庫linux
以前使用的是Excel來進行管理數據,redis
Excel的缺點:
1. 管理不了大量的數據 (10W量級的數據)
2. 不能併發操做同一個數據表格
3. 不支持高級的操做, 好比:分組,連表等sql
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服務端先啓動,監聽在某一個特定的端口(3306)
二、 mysql客戶端鏈接服務端
三、 鏈接成功後,能夠發送相關操做命令,操做服務端存儲的數據
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; #刷新權限
#一、下載: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
初始狀態下,管理員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
[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 #以新密碼登陸 方法二:啓動時,跳過受權庫
#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語言由IBM開發。SQL語言分爲3種類型:
#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'