MySQL入门及安装

网友投稿 257 2022-11-01


MySQL入门及安装

什么是数据

数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 在计算机系统中,数据以二进制信息单元0,1的形式表示。

数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*

什么是数据库管理系统

DBMS(database management system)

数据库管理系统分类

关系型数据库(RDBMS)

​以多张二维表的方式来存储,又给多张表建立了一定的关系(关系型数据库)

非关系型数据库(NoSQL)

左边rdbms右边nosql 很多以json格式进行存储数据的(mogodb)​key:value​姓名:小明

关系型数据库和非关系型数据库对比

功能对比

关系型数据库(RDBMS)的特点:

​二维表​ ​典型产品Oracle传统企业,MySQL互联网企业​ ​数据存取是通过SQL(Structured Query Language结构化查询语言)​ 最大特点数据安全性方面强(ACID)

非关系型数据库(NoSQL:Not only SQL)的特点:

​不是否定关系型数据库,而是做关系型数据库的补充。​ ​想做老大,先学会做老二​

时代特点对比:

​web1.0时代​

​企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要nosql。​

​web2.0时代

​核心是企业提供平台,用户参与提供内容,这个时代关系型数据库无法满足需求了。

2003NoSQL出现

​memcache的诞生,关注的点是性能,但是针对安全性能关注比较低,随着安全性能需求不断提升,所以有了redis。

redis的特点

​依然高性能高并发​数据持久化功能​支持多数据类型,主从复制和集群​管理不再使用SQL了

​NoSQL特性总览

\1. 不是否定关系型数据库,而是做关系型数据库的补充,现在也有部分替代的趋势mongodb。

\2. 关注高性能,高并发,灵活性,忽略和上述无关的功能。

\3. 现在也在提升安全性和使用功能。

\4. 典型产品:redis(持久化缓存,两个半天)、MongoDB(最接近关系型数据库的NoSQL)、memcached。

\5. 管理不适用SQL管理,而是用一些特殊的API或数据接口。

NoSQL的分类、特点、典型产品

键值(KV)存储:memcached、redis

列存储(column-oriented):HBASE(新浪、360)Cassandra(200台服务器集群)

文档数据库(document-oriented):MongoDB(最接近关系型数据库的NoSQL)

图形存储(Graph):Neo4j

MySQL安装

yum

源码

二进制

版本选型

5.6:GA 6-12个月,小版本号是偶数版

5.7:GA 6-12个月,小版本号是偶数版,必须是5.7.20以上版本(MGR)

MySQL官网:​​0.安装MySQL依赖[root@m01 mysql-5.6.50]# yum install -y cmake zlib-devel openssl-devel autoconf# 1.下载MySQL5.6[root@m01 ~]# wget 2.解压[root@m01 ~]# tar xf mysql-5.6.50.tar.gz # 3.生成# MySQL的安装目录cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.50 \#数据存放位置-DMYSQL_DATADIR=/application/mysql-5.6.50/data \#socket文件存放位置-DMYSQL_UNIX_ADDR=/application/mysql-5.6.50/tmp/mysql.sock \#使用utf8字符集-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 \#启用zlib库支持(zib、gzib相关)-DWITH_ZLIB=bundled \#启用SSL库支持(安全套接层)-DWITH_SSL=bundled \#启用本地数据导入支持-DENABLED_LOCAL_INFILE=1 \#编译嵌入式服务器支持-DWITH_EMBEDDED_SERVER=1 \# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。-DENABLE_DOWNLOADS=1 \#禁用debug(默认为禁用)-DWITH_DEBUG=0cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.50 \-DMYSQL_DATADIR=/application/mysql-5.6.50/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.6.50/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=system \-DENABLED_LOCAL_INFILE=1 \-DWITH_EMBEDDED_SERVER=1 \-DENABLE_DOWNLOADS=1 \-DWITH_DEBUG=0# 4.编译 && 安装[root@m01 mysql-5.6.50]# make && make install====================================================== 华丽的分割线 =============================================# 5.做软链接[root@m01 mysql-5.6.50]# ln -s /application/mysql-5.6.50 /application/mysql#### 目录结构[root@m01 mysql-5.6.50]# cd /application/mysql[root@m01 mysql]# lltotal 220drwxr-xr-x 2 root root 4096 Aug 2 12:48 bindrwxr-xr-x 3 root root 18 Aug 2 12:48 datadrwxr-xr-x 2 root root 55 Aug 2 12:48 docsdrwxr-xr-x 3 root root 4096 Aug 2 12:48 includedrwxr-xr-x 3 root root 291 Aug 2 12:48 lib-rw-r--r-- 1 root root 198041 Sep 23 2020 LICENSEdrwxr-xr-x 4 root root 30 Aug 2 12:48 mandrwxr-xr-x 10 root root 4096 Aug 2 12:48 mysql-test-rw-r--r-- 1 root root 587 Sep 23 2020 READMEdrwxr-xr-x 2 root root 30 Aug 2 12:48 scriptsdrwxr-xr-x 28 root root 4096 Aug 2 12:48 sharedrwxr-xr-x 4 root root 4096 Aug 2 12:48 sql-benchdrwxr-xr-x 2 root root 136 Aug 2 12:48 support-files# 6.拷贝配置文件[root@m01 mysql]# cp support-files/my-default.cnf /etc/my.cnf'# 7.拷贝启动脚本[root@m01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld# 8.做初始化+------------------+| Database |+------------------+|information_schema||performence_schema||test ||mysql |+------------------+[root@m01 scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data# 9.创建socket存放目录[root@m01 scripts]# mkdir /application/mysql-5.6.50/tmp# 10.创建MySQL用户[root@m01 scripts]# useradd mysql -s /sbin/nologin -M# 11.授权MySQL安装目录[root@m01 scripts]# chown mysql.mysql -R /application/mysql-5.6.50/# 12.启动数据库[root@m01 scripts]# /etc/init.d/mysqld start# 13.添加环境变量[root@m01 scripts]# echo 'PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh# 14.加载环境变量[root@m01 scripts]# source /etc/profile# 15.连接数据库[root@m01 scripts]# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.50 Source distributionCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

初始化报错

没有安装Perl模块[root@m01 scripts]# yum install -y autoconf

MySQL二进制安装

# 0.安装依赖[root@db02 scripts]# yum install -y autoconf libaio-devel# 1.下载[root@db02 ~]# wget 2.解压[root@db02 ~]# tar xf mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz# 3.创建安装目录[root@db02 ~]# mkdir /application# 4.移动到安装目录[root@db02 ~]# mv mysql-5.6.50-linux-glibc2.12-x86_64 /application/mysql-5.6.50# 5.做软链接[root@db02 ~]# ln -s /application/mysql-5.6.50 /application/mysql# 6.拷贝配置文件[root@db02 mysql]# cp support-files/my-default.cnf /etc/my.cnf# 7.拷贝脚本[root@db02 mysql]# cp support-files/mysql.server /etc/init.d/mysqld# 8.创建MySQL用户[root@db02 scripts]# useradd mysql -s /sbin/nologin -M# 9.初始化[root@db02 mysql]# cd scripts[root@db02 scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data# 10.替换脚本中的/usr/local为/applicationvim /etc/init.d/mysqld:%s#/usr/local#/application#g# 11.授权[root@db02 scripts]# chown -R mysql.mysql /application/mysql-5.6.50/# 12.添加环境变量[root@db02 scripts]# echo 'PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh# 13.加载环境变量[root@db02 scripts]# source /etc/profile

优化.......

## 查看MySQL用户mysql> select user,host from mysql.user;+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | ::1 || | localhost || root | localhost || | m01 || root | m01 |+------+-----------+## 优化MySQL用户mysql> truncate mysql.user;## 退出重启[root@m01 scripts]# /etc/init.d/mysqld restartShutting down MySQL. SUCCESS! Starting MySQL.. SUCCESS!

MySQL5.7源码安装

# 0.安装依赖包[root@db03 mysql-5.7.38]# yum install -y cmake openssl-devel# 1.下载[root@db03 ~]# wget 2.解压[root@db03 ~]# tar xf mysql-boost-5.7.38.tar.gz# 3.生成cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.38 \-DMYSQL_DATADIR=/application/mysql-5.7.38/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.7.38/tmp/mysql.sock \-DWITH_BOOST=/root/mysql-5.7.38/boost/boost_1_59_0 \-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=system \-DENABLED_LOCAL_INFILE=1 \-DWITH_EMBEDDED_SERVER=1 \-DENABLE_DOWNLOADS=1 \-DWITH_DEBUG=0 # 4.编译 && 安装[root@db03 mysql-5.7.38]# make && make install####################################### 源码后半部分 + 二进制 ################################################ 0.安装依赖[root@db04 bin]# yum install -y libaio-devel# 1.解压[root@db04 ~]# tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz# 2.创建安装目录[root@db04 ~]# mkdir /application# 3.移动[root@db04 ~]# mv mysql-5.7.38-linux-glibc2.12-x86_64 /application/mysql-5.7.38# 4.软链接[root@db04 ~]# ln -s /application/mysql-5.7.38 /application/mysql# 5.创建mysql用户[root@db04 ~]# useradd mysql -s /sbin/nologin -M[root@db04 ~]# mkdir /application/# 6.授权[root@db04 ~]# chown mysql.mysql -R /application/mysql-5.7.38/# 7.修改mysql配置文件[root@db04 mysql-5.7.38]# vim /etc/my.cnf[mysqld]basedir=/application/mysqldatadir=/application/mysql/data# 8.拷贝启动脚本[root@db04 mysql-5.7.38]# cp support-files/mysql.server /etc/init.d/mysqld# 9.初始化### 带密码[root@db04 bin]# ./mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data### 不带密码[root@db04 bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data# 10.添加环境变量[root@db04 bin]# echo 'PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh[root@db04 bin]# source /etc/profile.d/mysql.sh# 11.连接mysql[root@db04 bin]# mysql -uroot -p'Hk0fzYh

误删除root用户或忘记root密码

# 1.停mysql/etc/init.d/mysqld stop# 2.跳过授权表,只能本地连接启动数据库[root@m01 ~]# mysqld_safe --skip-grant-tables --skip-network &# 3.刷新授权表mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)# 4.创建root用户mysql> grant all on *.* to root@'localhost' identified by '123' with grant option;Query OK, 0 rows affected (0.00 sec)# 5.重启mysql[root@m01 ~]# /etc/init.d/mysqld restart

作业:

1.企业中,忘记root密码,或者误删除root用户??????2.db03上,源码安装MySQL5.73.db04上,二进制安装MySQL5.7# 1、首先在/etc/my.cnf文件中 [mysql]下面添加skip-grant-tables用来跳过安全密码验证# 2、在服务上重启mysql服务/etc/init.d/mysqld restart# 3、使用mysql直接进入mysql[root@db01 ~]# mysql# 4、使用mysql数据库mysql> use mysql;# 5、重新添加用户insert into user(user,host,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values('root','localhost',PASSWORD('123'),'','','','');# 6、对新添加用户进行授权grant all privileges on *.* to root@"loaclhost" identified by '123';###此时报错,因为处于skip-grant-tablesERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement# 解决:# 先执行flush privileges;##再执行## grant all privileges on *.* to root@"loaclhost" identified by '123';## flush privileges;# 此时查看新添加用户的权限select * from mysql.user where user='root'\G;# 此时退出mysql,在服务上的/etc/my.cnf文件上删除掉skip-grant-tables重启mysql服务[root@db01 ~]# vim /etc/my.cnf[root@db01 ~]# /etc/init.d/mysqld restart[root@db01 ~]# mysql -u root -pEnter password: 123----------------------------------------------------------# 源码安装cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.30 \-DMYSQL_DATADIR=/application/mysql-5.7.30/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.7.30/tmp/mysql.sock \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=/usr/local/boost_1_59_0 \-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=system \-DENABLED_LOCAL_INFILE=1 \-DWITH_EMBEDDED_SERVER=1 \-DENABLE_DOWNLOADS=1 \-DWITH_DEBUG=0 # 安装依赖[root@db02 ]# yum install -y gcc gcc-c++ automake autoconf[root@db02 ]# yum install make cmake bison-devel ncurses-devel libaio-devel# 拷贝启动脚本[root@db03 mysql]# cp support-files/mysql.server /etc/init.d/mysqld#做软链接[root@db03 ~]# ln -s /application/mysql-5.7.30 /application/mysql# 创建目录[root@db03 mysql]# mkdir data[root@db03 mysql]# mkdir tmp# 创建MySQL用户[root@db02 mysql]# useradd mysql -s /sbin/nologin -M# 授权[root@db02 mysql]# chown -R mysql.mysql /application/mysql-5.7.30/# 修改配置文件[mysqld]datadir=/application/mysqlsocket=/application/mysql/tmp/mysql.sockdatadir=/application/mysql/data[root@db03 bin]# ./mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data# 添加环境变量[root@db02 mysql]# echo 'PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh# 加载环境变量[root@db02 mysql]# source /etc/profile# 重启数据库/etc/init.d/mysqld start# 带密码输入[root@db03 bin]# mysql -uroot -p----------------------------------------------------------------------## 二进制安装# 安装依赖[root@db04 ~]# yum install -y gcc gcc-c++ automake autoconf[root@db04 ~]# yum install make cmake bison-devel ncurses-devel libaio-devel# 创建安装目录[root@db04 ~]# mkdir /application# 移动到安装目录[root@db04 ~]# mv mysql-5.7.30-linux-glibc2.12-x86_64 /application/mysql-5.7.30# 做软链接[root@db04 ~]# ln -s /application/mysql-5.7.30 /application/mysql# 创建目录[root@db04 mysql]# mkdir data[root@db04 mysql]# mkdir tmp# 拷贝配置文件[root@db04 mysql]# cp support-files/my-default.cnf /etc/my.cnf# 拷贝脚本[root@db04 mysql]# cp support-files/mysql.server /etc/init.d/mysqld# 创建MySQL用户[root@db04 mysql]# useradd mysql -s /sbin/nologin -M# 授权[root@db04 mysql]# chown -R mysql.mysql /application/mysql-5.7.30/# 修改配置文件[mysqld]datadir=/application/mysqlsocket=tmp/mysql.sockdatadir=/application/mysql/data# 做软连接[root@db04 mysql]# ln -s /application/mysql-5.7.30 /usr/local/mysqlroot@db04 bin]# ./mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data# 添加环境变量[root@db04 mysql]# echo 'PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh# 加载环境变量[root@db04 mysql]# source /etc/profile# 重启数据库/etc/init.d/mysqld start# 带密码输入[root@db04 bin]# mysql -uroot -p


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL体系管理
下一篇:Java 实现贪吃蛇游戏的示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~