一、数据库管理系统
1、RDBMS关系型数据库特点
①二维表
②典型产品Oracle传统企业,MySQL是互联网企业产品
③数据存取通过SQL
④最大的特点,数据安全性很强(ACID)
2、NoSQL非关系型数据库特点
①不是否定关系型数据库,做关系型数据库的补充
②典型产品:Redis持久化缓存、MongoDB、Memcached
③管理不适用SQL管理,而是用一些特殊的API或者数据接口
二、MySQL安装方式
1、Yum安装方便、安装速度快,无法定制
2、二进制:不方便安装,解压即可使用,无法定制
3、编译安装:可定制,安装慢
5.5之前:./configure make && make install
5.5之后:cmake gmake
4、定制RPM包,先编译然后制作rpm再制作yum仓库,然后yum安装
安装简单、速度快,可定制,定制时间长,比较复制,大型企业都会选择定制RPM
三、实战编译安装MySQL-5.6.36
1、环境
[root@db mysql-5.6.36]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@db mysql-5.6.36]# uname -r 2.6.32-696.el6.x86_64 [root@db mysql-5.6.36]# /etc/init.d/iptables status iptables: Firewall is not running. [root@db mysql-5.6.36]# getenforce Disabled [root@db mysql-5.6.36]# hostname -I 172.19.5.54 172.16.1.54
2、安装
mkdir /server/tools/ -p cd /server/tools/ wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz tar xf mysql-5.6.36.tar.gz cd mysql-5.6.36 cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 -DMYSQL_DATADIR=/application/mysql-5.6.36/data -DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLE_DOWNLOADS=1 -DWITH_DEBUG=0 make && make install ln -s /application/mysql-5.6.36/ /application/mysql \cp /server/tools/mysql-5.6.36/support-files/my*.cnf /etc/my.cnf /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql cp /server/tools/mysql-5.6.36/support-files/mysql.server /etc/init.d/mysqld chmod 700 /etc/init.d/mysqld chkconfig mysqld on chkconfig --list mysqld mkdir /application/mysql/tmp chown -R mysql.mysql /application/mysql/ echo ‘PATH=/application/mysql/bin/:$PATH‘ >>/etc/profile source /etc/profile /etc/init.d/mysqld start
Cmake的作用
①定制软件的安装路径 ②定制mysql的源程序和命令脚本 bin/mysqld(二进制的)关键守护程序源码 bin/mysql bin/mysqld_safe scripts/mysql.server bin/mysqldump bin/mysqladmin supports-file/mysql_install_db
3、清理数据库及不需要的用户
drop database test; drop user ‘root‘@‘::1‘; drop user ‘root‘@‘db‘; drop user ‘‘@‘db‘; drop user ‘‘@‘localhost‘; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (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)
4、安装遇到的报错
问题1:
ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db.pid).
解决:
chown -R mysql.mysql /application/mysql-5.6.36/
问题2:
数据库启动会提示,找不到/application/tmp/mysql.sock,原因是5.6.36版本不会自动创建tmp目录
解决:
mkdir /application/mysql/tmp
其它常见问题
①权限.chown -R mysql.mysql ②killall mysqld ③重新初始化数据. ④运行1年了,出问题(非法(断电)关机或者非法关数据库,例如kill -9)
四、MySQL基础命令使用
命令 |
说明 |
show databases; |
查询显示所有的数据库信息 |
create database oldboy; |
创建新的数据库 |
drop database oldboy; |
删除存在的数据库 |
use mysql; |
表示选择使用一个数据库,相当于cd进入一个数据库 |
show tables; |
查看数据库中表信息 |
select database(); |
表示查看当前所在数据库,类似于pwd命令的功能 |
select user(); |
查看当前登录数据库的用户,类似于whoami命令 |
select * from user\G; |
查看user表中所有信息,并且纵行显示 |
select user,host from user; |
查看user表中指定信息,并且横行显示 |
select user,host from mysql.user; |
查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库 |
drop user ‘user‘@‘host‘; |
删除用户 |
flush privileges; |
刷新权限 |
grant all on .* to user@‘host‘ identified by ‘oldboy123‘; |
创建用户 |
grant all on .* to Old_Boy@‘localhost‘ identified by ‘oldboy123‘; |
创建用户(用户名包含大写字母) |
mysqladmin -u root password ‘123456‘; |
为用户设置密码 |
mysqladmin -uroot -p123456 password 654321 |
修改密码,在知道旧密码的前提下 |
delete from mysql.user where user="root" and host="Mysql"; |
遇主机名大写,特殊字符使用drop无法删除 |