mysql

1 數據庫的基本介紹

1.1什麼是數據庫-------存放數據的倉庫

數據庫的種類:

從大的方向上:

1、傳統的關係型數據庫:MYSQL,Oracledb2sysbase

       互聯網最火的:MYSQLMariaDB

       PS:關係型數據庫的本質就就二維表

特點:讀寫更多的是和磁盤打交道,數據一致性,安全性

缺點:速度慢

2、非關係型數據庫:nosqlnot only sql

特點:以高效,高性能爲目的,凡是和效率性能無關的因素都儘可能拋棄

它是關係型數據庫的補充,非革命;但是越來越火!

 

memcached  純內存緩存的軟件

memcached不再是二維表的形式了,而是鍵值對的形式

數據類型:

key-->value   鍵值對的形式

 

redis  內存加持久化軟件(磁盤)

數據類型:

key-->value   鍵值對的形式

類型更多:集合set,列表list

1.2 數據庫小結

關係型數據庫:

1、二維表格

2mysqlOracle數據庫,互聯網最常用的是Mysql

3、通過SQL結構化查詢語句存取數據

4、保持數據一致性方面很強。ACID理論

NOSQL非關係型數據庫:

1NOSQL不是否定關係型數據庫,而是作爲關係型數據庫的一個重要補充

2NOSQL爲了高性能、高併發而生的

3NOSQL典型產品:memcached(純內存),redis(持久化緩存),mongodb

 

MYSQL

商業版

社區版*****

2  mysql的安裝與配置

2.1 linux軟件的安裝方式

1yum/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;mysqluser表查看字段

查看當前用戶     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

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章