数据库
数据库的作用
存储的数据,包含用户的账号,密码,级别,存款,余额,等级,购物记录,头像本地路径,视频文件路径。
只要是信息,就一定在数据库里。
发展由来
1 人工管理阶段。(过去) 账本 -----2 文件系统阶段(近代)excel -----3 数据库系统管理阶段(目前)mysql
数据库-系统结构
- 数据库系统DBS
A. 数据库管理系统(DataBase Management System, DBMS)
SQL(RDS关系型数据库):ORACLE、Oracle MySQL、DB2(IBM)、SQL-server(MS)、MySQL、Mysql、MariaDB、Percona server(taobao)
B. DBA:工程师
-
SQL语言(结构化查询语言)
SQL(Structured Query Language 即结构化查询语言)
A. DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程、函数, CREATE DROP ALTER //开发人员
B. DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE //开发人员
C. DQL语句 数据库查询语言: 查询数据 SELECT
D. DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE -
数据访问技术
A. ODBC PHP<.php>
B. JDBC JAVA<.jsp>
C. ASP.NET< c#>
RPM部署
安装MySQL服务器
- 访问国内MySQL镜像站
- 下载软件包
[root@localhost ~]# wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-community-server-5.7.29-1.el7.x86_64.rpm
[root@localhost ~]#wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-community-client-5.7.29-1.el7.x86_64.rpm
[root@localhost ~]# wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-community-common-5.7.29-1.el7.x86_64.rpm
[root@localhost ~]# wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-community-libs-5.7.29-1.el7.x86_64.rpm
- 安装相关的软件
[root@localhost ~]# yum install -y net-tools.x86_64 libaio.x86_64 perl.x86_64
- 安装MySQL服务器
[root@localhost ~]# yum install -y mysql-community*
如果出现错误,卸载冲突的软件包
[root@localhost ~]# yum remove -y mariadb-libs.x86_64
[root@localhost ~]# yum install -y mysql-community*
5. 启动MySQL服务器
[root@localhost ~]#systemctl start mysqld
[root@localhost ~]#systemctl enable mysqld
[root@localhost ~]#systemctl status mysqld
- 查看MySQL服务器默认密码
[root@localhost ~]# grep 'password' /var/log/mysqld.log
需要注意:冒号和空格的后面全是密码
- 修改MySQL服务器的密码
[root@localhost ~]# mysqladmin -uroot -p'es,W;ya(K1Th' password 'ZhongGuo@123'
- 登录MySQL系统
[root@localhost ~]# mysql -uroot -p'ZhongGuo@123'
- 查看默认数据库
- 关机快照保存
源码包部署
源码安装
与二进制(RPM)发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL
所做的调整将会更多更灵活一些。因为通过源代码编译我们可以:
a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;
d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;
e) 同一台主机上面可以安装多个MySQL;
f) 等等其他一些可以根据特定应用场景所作的各种调整。
在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;
准备编译环境
[root@localhost ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake 安装编译软件
[root@localhost ~]# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
安装mysql
准备源码包
[root@localhost ~]# groupadd mysql 创造mysql组
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql 创造用户
[root@localhost ~]# tar xvf mysql-5.7.19.tar.gz 解压
[root@localhost ~]# cd mysql-5.7.19 移动包里
[root@mysql3 mysql-5.7.19]# pwd
/root/mysql-5.7.19
[root@mysql3 mysql-5.7.19]# mv ../boost_1_59_0.tar.gz . 移动包
[root@mysql3 mysql-5.7.19]# tar xf boost_1_59_0.tar.gz 解压
配置
[root@mysql-5.7.19 ~]# cmake . \
-DWITH_BOOST=boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
编译
[root@mysql-5.7.19 ~]#make
等待大概一个小时左右
安装
[root@mysql-5.7.17 ~]#make install
初始化
[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# mkdir mysql-files
[root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql
[root@localhost mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 会产生临时密码,在屏幕,保存临时密码
[root@localhost mysql]# /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
建立mysql配置文件my.cnf
备份原有配置文件
`[root@localhost mysql]#` mv /etc/my.cnf ~
[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
最后开机启动mysql
[root@localhost mysql]#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]#chkconfig --add mysqld 添加MySQL服务
[root@localhost mysql]#chkconfig mysqld on 开机自动自启mysql服务
[root@localhost mysql]#service mysqld start 重启mysql
[root@localhost mysql]# ps aux |grep mysqld
[root@localhost mysql]#/usr/local/mysql/bin/mysql -u root -p'x/dwiQ2<l:hb' 用原密码登录
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -u root -p 'x/dwiQ2<l:hb' password 'ZhongGuo@123' 配置新密码
show databases
看到库即成功