1、什么是关系型数据库。
a、二维表格
b、mysql和oracle数据库,互联网运维最常用的是mysql。
c、通过SQL结构化查询语句存取数据。
d、保持数据一致性方面很强。ACID理论。
特点:读写更多的是和磁盘打交道,数据一致性,安全
缺点:速度慢。
2、NOSQL非关系型数据库小结:
a、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充。
b、NOSQL为了高性能。高并发而生的。
c、NOSQL典型产品memcached(纯内存),redis(持久性缓存),mongodb(文档数据库)
3、linux下软件的安装方式:
1)、yum/rpm 安装;简单、快,但是无法定制。
2)、编译安装;./configure;make;make install 复杂,速度慢,可定制。
针对mysql,第一条产品线的编译方式5.0--5.1
mysql 5.5以上(mysql-5.5.32.tar.gz)编译安装,./cmake ;gmake;gmake install
3)、二进制包安装**
解压就能用(绿色软件,无需安装) 简单,快,不好定制。
安装mysql选:二进制包 mysql-5.5.32-linux2.6-x86_64.tar.gz
4)源码软件结合 /yum/rpm来安装。把源码软件制作成符合要求的rpm 包,放到yum仓库里,然后通过yum来安装。特点:安装快速,可定制。**
4、安装mysql步骤:
a、添加mysql用户useradd mysql -s /sbin/nologin -M
b、下载解压软件
[root@lnmp02 ~]# cd /home/oldboy/tools/
[root@lnmp02 tools]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
[root@lnmp02 tools]# mv mysql-5.5.32-linux2.6-x86_64 /application/mysql-5.5.32 #移到/application下
[root@lnmp02 tools]# ln -s /application/mysql-5.5.32/ /application/mysql
c、初始化数据库[root@lnmp02 tools]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
d、授权mysql管理数据库文件chown -R mysql.mysql /application/mysql/
e、生成mysql配置文件[root@lnmp02 mysql]# cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
5、配置启动mysql
[root@lnmp02 mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe #改变mysql目录
[root@lnmp02 mysql]# /application/mysql/bin/mysqld_safe & #启动mysql服务
6、配置传统方式启动mysql
a、[root@lnmp02 mysql]# cp support-files/mysql.server /etc/init.d/mysqld #将mysql的配置文件复制到/etc/init.d目录下。
b、[root@lnmp02 mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /etc/init.d/mysqld #改变mysql的目录。
c、[root@lnmp02 mysql]# chmod +x /etc/init.d/mysqld #增加执行权限
d、[root@lnmp02 mysql]# /etc/init.d/mysqld start
e、[root@lnmp02 mysql]# chkconfig mysqld on #加入开机自启动
f、 cp /application/mysql/bin/* /usr/local/sbin/ #将mysql启动命令拷贝到bash里。
7、mysql设置密码和登录及更改密码
设置密码:mysqladmin -uroot password "123456"
登录mysql:mysql -uroot -p123456
更改密码:mysqladmin -uroot -p123456 password "oldboy"
8、mysql简单安全优化
登录到mysql下:查看库 show databases;
删除不用的库 drop database test;
查看用户和主机 select user,host from mysql.user; 用户和主机共同标识一个用户。
删除无用用户 drop user 'root'@'lnmp02';
mysql> drop user ''@'lnmp02';
mysql> drop user ''@'localhost';
mysql> drop user 'root'@'::1';
如果遇到主机是大写或特殊字符:
delete from mysql.user where user="root" and host="A"
删除之后执行:flush privileges;刷新权限
9、mysql简单命令
查看帮助:help 例 help show databases;
查所有的库:show databases; ========>ls
切库:user mysql; ========>cd
查表:show tables;
查看用户列表:select user,host from mysql.user;
查看当前用户:select user(); ========>whoami
查看当前所在库:select database(); =========>pwd
删除数据库:drop database 库名;
删除用户:drop user ’用户‘@’主机‘;
10、查看mysql错误日志
ll /application/mysql/data/mysql-server.err
11、将LNMP里的mysql数据分离到单独的mysql里。
mysqldump是最常用的备份工具:(选择逻辑备份,安全)
1)、逻辑备份:原理是将数据库的数据以逻辑的SQL语句的方式导出。
2)、物理备份:scp /application/mysql/data/ 把整个目录打包拷贝到独立的数据库就可以。(缺点:容易丢数据)
xtrabackup是开源的物理备份工具。
首先将lnmp里的数据库数据备份起来压缩。
[root@lnmp02 ~]# mysqldump -uroot -p123456 -B -x wordpress|gzip>/opt/bak_wordpress_$(date +%F).sql.gz
[root@lnmp02 ~]# ll /opt/
总用量 188
-rw-r--r-- 1 root root 187680 12月 28 13:16 bak_wordpress_2017-12-28.sql.gz
drwxr-xr-x. 2 root root 4096 3月 26 2015 rh
mysqldump的参数:-A 备份数据库
-B 备份多个库,并添加 use 库名;create databases库等的备份。
-x 锁表,备份期间会影响读写,尽量晚上执行。
|gzip 压缩效率高。
sql.gz 表示sql语句数据,.gz是压缩包。
然后在独立mysql的服务器上让数据库恢复:
[root@mysql-server ~]# cd /opt/
[root@mysql-server opt]# ll
总用量 188
-rw-r--r-- 1 root root 187681 12月 28 2017 bak_wordpress_2017-12-28.sql.gz
drwxr-xr-x. 2 root root 4096 3月 26 2015 rh
[root@mysql-server opt]# gzip -d bak_wordpress_2017-12-28.sql.gz #解压之后会删除原文件。
[root@mysql-server opt]# ll
总用量 800
-rw-r--r-- 1 root root 812373 12月 28 2017 bak_wordpress_2017-12-28.sql
drwxr-xr-x. 2 root root 4096 3月 26 2015 rh
[root@mysql-server opt]# mysql -uroot -p123456
mysql> grant select,insert,update,delete on wordpress.* to wordpress@'192.168.153.%' identified by '123456'; #给wordpress这个用户授权。
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+-----------+---------------+
| user | host |
+-----------+---------------+
| root | 127.0.0.1 |
| wordpress | 192.168.153.% | #对应的用户在lnmp服务器上 /application/nginx/html/blog/wp-config.php里面更改,然后解析在/etc/hosts解析。