1 數據庫的基本介紹
1.1什麼是數據庫-------存放數據的倉庫
數據庫的種類:
從大的方向上:
1、傳統的關係型數據庫:MYSQL,Oracle,db2,sysbase
互聯網最火的:MYSQL,MariaDB
PS:關係型數據庫的本質就就二維表
特點:讀寫更多的是和磁盤打交道,數據一致性,安全性
缺點:速度慢
2、非關係型數據庫:nosql:not only sql
特點:以高效,高性能爲目的,凡是和效率性能無關的因素都儘可能拋棄
它是關係型數據庫的補充,非革命;但是越來越火!
memcached 純內存緩存的軟件
memcached不再是二維表的形式了,而是鍵值對的形式
數據類型:
key-->value 鍵值對的形式
redis 內存加持久化軟件(磁盤)
數據類型:
key-->value 鍵值對的形式
類型更多:集合set,列表list
1.2 數據庫小結
關係型數據庫:
1、二維表格
2、mysql和Oracle數據庫,互聯網最常用的是Mysql
3、通過SQL結構化查詢語句存取數據
4、保持數據一致性方面很強。ACID理論
NOSQL非關係型數據庫:
1、NOSQL不是否定關係型數據庫,而是作爲關係型數據庫的一個重要補充
2、NOSQL爲了高性能、高併發而生的
3、NOSQL典型產品:memcached(純內存),redis(持久化緩存),mongodb
MYSQL:
商業版
社區版*****
2 mysql的安裝與配置
2.1 linux軟件的安裝方式
1、yum/rpm 簡單 快,無法定製。
2、編譯安裝,./configure;make;make install 複雜,速度慢,可定製
針對MYSQL 5.0--5.1,選擇此編譯方式
針對MYSQL 5.5以上,編譯安裝方式爲===》 ./cmake;gmake;gmake install
3、二進制包*****
直接解壓用(綠色軟件,無需安裝) 簡單,快,不好定製
2.2 Mysql的安裝(二進制包)
下載好二進制包,傳到服務器
[root@lnmp02 tools]# rz -y rz waiting to receive. Starting zmodem transfer. Press Ctrl+C to cancel. Transferring mysql-5.5.32-linux2.6-x86_64.tar.gz... 100% 182346 KB 4052 KB/sec 00:00:45 0 Errors [root@lnmp02 tools]# ls mysql-5.5.32-linux2.6-x86_64.tar.gz nginx-1.6.3 nginx-1.6.3.tar.gz
添加mysql用戶
[root@lnmp02 tools]# useradd mysql -s /sbin/nologin -M [root@lnmp02 tools]# id mysql uid=506(mysql) gid=506(mysql) 組=506(mysql)
解壓
[root@lnmp02 tools]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz [root@lnmp02 tools]# ls mysql-5.5.32-linux2.6-x86_64 nginx-1.6.3 mysql-5.5.32-linux2.6-x86_64.tar.gz nginx-1.6.3.tar.gz
移動到軟件安裝目錄
[root@lnmp02 tools]# mv mysql-5.5.32-linux2.6-x86_64 /application/mysql-5.5.32
做個軟鏈接
[root@lnmp02 tools]# ln -s /application/mysql-5.5.32/ /application/mysql [root@lnmp02 tools]# ls -l /application/ 總用量 8 lrwxrwxrwx 1 root root 26 6月 25 11:44 mysql -> /application/mysql-5.5.32/ drwxr-xr-x 13 root root 4096 6月 25 11:41 mysql-5.5.32 lrwxrwxrwx 1 root root 25 6月 24 16:58 nginx -> /application/nginx-1.6.3/ drwxr-xr-x 11 root root 4096 6月 24 17:05 nginx-1.6.3
操作到此步驟相當於編譯安裝make install之後,安裝完成了。
2.3 mysql的基本配置
初始化數據庫
[root@lnmp02 tools]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql [root@lnmp02 tools]# echo $? 0 授權mysql管理數據庫目錄文件 [root@lnmp02 tools]# chown -R mysql.mysql /application/mysql/ 生成mysql配置文件 [root@lnmp02 tools]# cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
配置啓動mysql
[root@lnmp02 mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe
啓動mysql
[root@lnmp02 tools]# /application/mysql/bin/mysqld_safe & [1] 1128 [root@lnmp02 tools]# 170625 13:40:28 mysqld_safe Logging to '/application/mysql/data/lnmp02.err'. 170625 13:40:28 mysqld_safe Starting mysqld daemon with databases from /application/mysql/data
檢查
[root@lnmp02 tools]# lsof -i :3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1346 mysql 10u IPv4 17488 0t0 TCP *:mysql (LISTEN)
配置環境變量
[root@lnmp02 tools]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@lnmp02 tools]# cp /application/mysql/bin/* /usr/local/sbin/ [root@lnmp02 tools]# which mysql /usr/local/sbin/mysql
比較規範的方法配置環境變量
vi /etc/profile PATH="/application/mysql/bin/:$PATH" source /etc/profile
登錄測試
[root@lnmp02 tools]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.32 MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
2.4 配置傳統方式啓動mysql
[root@lnmp02 tools]# cd /application/mysql [root@lnmp02 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@lnmp02 mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /etc/init.d/mysqld [root@lnmp02 mysql]# chmod +x /etc/init.d/mysqld [root@lnmp02 mysql]# killall mysqld [root@lnmp02 mysql]# 170625 13:57:54 mysqld_safe mysqld from pid file /application/mysql/data/lnmp02.pid ended [root@lnmp02 mysql]# lsof -i :3306 [root@lnmp02 mysql]# [root@lnmp02 mysql]# /etc/init.d/mysqld start Starting MySQL.. SUCCESS! [root@lnmp02 mysql]# lsof -i :3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1633 mysql 10u IPv4 18284 0t0 TCP *:mysql (LISTEN)
設置開機啓動
[root@lnmp02 mysql]# chkconfig mysqld on [root@lnmp02 mysql]# chkconfig --list mysqld mysqld 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
設置mysql密碼及更改密碼
[root@lnmp02 mysql]# mysqladmin -uroot password "123456" [root@lnmp02 mysql]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) [root@lnmp02 mysql]# mysql -uroot -p123456 [root@lnmp02 mysql]# mysqladmin -uroot -p123456 password "wangxian" 《==更改密碼
安全優化,刪除test庫
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.04 sec) mysql> drop database test; Query OK, 0 rows affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec)
查找mysql庫的用戶表,並刪除無用的用戶
mysql> select user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | ::1 | | | lnmp02 | | root | lnmp02 | | | localhost | | root | localhost | +------+-----------+ 6 rows in set (0.00 sec) mysql> drop user ''@'lnmp02'; Query OK, 0 rows affected (0.00 sec) mysql> drop user ''@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> drop user 'root'@'lnmp02'; Query OK, 0 rows affected (0.00 sec) mysql> drop user 'root'@'::1'; Query OK, 0 rows affected (0.00 sec) mysql> select user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | localhost | +------+-----------+ 2 rows in set (0.00 sec)
如果主機名有大寫或者特殊字符,drop無法刪除,可以用delete刪除
delete from mysql.user where user="root" and host="A"; flush privileges; 《==============刷新,讓權限生效
mysql簡單命令
help------------help show databases;
查所有的庫 show databases; 《==============ls
切庫 use mysql; 《==============cd
查表 show tables;
查看用戶列表 select user,host from mysql.user;mysql庫user表查看字段
查看當前用戶 select user(); 《==============whoami
查看當前所在庫 select database(); 《==============pwd
刪除數據庫 drop database 庫名;
刪除用戶 drop user '用戶'@'主機';
生效配置 flush privileges;
創建及增加用戶 create user 'root'@'127.0.0.1' identified by 'wangxian';
mysql錯誤日誌
[root@mysql-server ~]# cat /application/mysql/data/mysql-server.err