设为首页 收藏本站
查看: 743|回复: 0

[经验分享] 基于CentOS7的MySQL-5.7的安装及基本操作

[复制链接]

尚未签到

发表于 2018-9-30 10:03:51 | 显示全部楼层 |阅读模式
基于CentOS7的MySQL-5.7的安装及基本操作

简介
  数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

定义
  数据库,简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
  数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。

特点


  • 结构化储存大量的数据信息,方便用户进行有效的检索和访问
  • 有效的保持数据信息的一致性、完整性,降低数据冗余
  • 满足应用的共享和安全方面的要求。
安装实验

实验环境
  CentOS7虚拟机一台
  [MySQL的源代码编译包]MySQL-5.7.17.tar.gz
  c++运行库boost_1_59_0
  ###实验配置
  首先安装相关的环境包

  [root@bogon ~]# yum install -y ncurses ncurses-devel bison cmake gcc gcc-c++

  创建MySQL的管理用户

  [root@bogon ~]# useradd -s /sbin/nologin mysql

  解压缩相应的软件包(MySQL-5.7.17)

  [root@bogon mysql]# tar zxvf mysql-5.7.17.tar.gz -C /opt

  解压缩c++运行库至/usr/local/目录下

  [root@bogon mysql]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/

  切换目录到/usr/local/目录下,然后对boost文件进行重命名

  [root@bogon local]# mv boost_1_59_0/ boost

  然后切换至MySQL的安装目录,进行编译配置
  

[root@bogon mysql-5.7.17]# cmake \  
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  
> -DSYSCONFDIR=/etc \
  
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
  
> -DDEFAULT_CHARSET=utf8  \
  
> -DDEFAULT_COLLATION=utf8_general_ci \
  
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  
> -DMYSQL_DATADIR=/usr/local/mysql/data \
  
> -DWITH_BOOST=/usr/local/boost \
  
> -DWITH_SYSTEMD=1
  

  配置完成后就是进行二进制的转换和编译安装了
  

[root@bogon mysql-5.7.17]# make && make install  

  修改mysql工作文件夹的属主和属组
  

[root@bogon mysql-5.7.17]# chown -R mysql:mysql /usr/local/mysql/  

  修改MySQL的主配置文件
  

[root@bogon mysql-5.7.17]# vim /etc/my.cnf  
//在行首插入
  
[client]
  
port = 3306
  
default-character-set=utf8
  
socket = /usr/local/mysql/mysql.sock
  

  
[mysql]
  
port = 3306
  
default-character-set=utf8
  
socket = /usr/local/mysql/mysql.sock
  

  
//删除原来的mysqld的配置参数,重新插入
  

  
[mysqld]
  
user = mysql
  
basedir = /usr/local/mysql
  
datadir = /usr/local/mysql/data
  
port = 3306
  
character_set_server=utf8
  
pid-file = /usr/local/mysql/mysqld.pid
  
socket = /usr/local/mysql/mysql.sock
  
server-id = 1
  

  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
  

  

  修改完上面的主配置文件后,修改配置文件的属主和属组

  [root@bogon mysql-5.7.17]# chown mysql:mysql /etc/my.cnf

  添加环境变量

  [root@bogon mysql-5.7.17]# echo'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
  [root@bogon mysql-5.7.17]# echo 'export PATH' >> /etc/profile
  [root@bogon mysql-5.7.17]# source /etc/profile

  初始化数据库
  

[root@bogon mysql-5.7.17]# cd /usr/local/mysql/  
[root@bogon mysql]#
  
[root@bogon mysql]# bin/mysqld \
  
> --initialize-insecure \
  
> --user=mysql \
  
> --basedir=/usr/local/mysql \
  
> --datadir=/usr/local/mysql/data
  

  
//    **注:初始化这里可能会遇到一个报错信息:error:too many arguments (first extra is '');error:Aborting**
  
解决方法:切换目录/usr/local/mysql/,ls查看当前目录下有哪些文件,应该会找到一个data(数据)的文件夹,但是文件夹可能为空,所以这里我们直接rm -rf data;删除data文件夹即可,然后继续初始化数据库
  

  最后将mysqld的管理脚本拷贝到系统目录下,使系统能够识别
  

[root@bogon mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/  
[root@bogon mysql]# systemctl daemon-reload    //刷新识别
  
[root@bogon mysql]# systemctl start mysqld     //启动MySQL服务
  
[root@bogon mysql]# netstat -anpt | grep 3306     //查看MySQL的3306端口是否被开启
  

  最后关闭防火墙及增强性安全功能,就可以设置登录数据库的密码了
  

[root@bogon mysql]# systemctl stop firewalld.service  
[root@bogon mysql]# setenforce 0
  

  

  此时就可以mysql数据库的登入了,但是有个问题,初始化数据库时默认生成了一个密码,但这个密码是空的,所以我们还要进行密码的设定
  

[root@bogon mysql]# mysqladmin -u root -p password "abc123"  
然后会提示输入密码:
  
因为初始化时生成的密码是空的,所以直接回车,然后密码就设置成功了
  

  
此时在重新登入一次,使用新密码abc123
  
就可以登入MySQL命令行模式了。
  

  然后我们进行数据库的基本操作
  

[root@localhost ~]# mysql -u root -p  
Enter password:        //输入密码,我们设置的密码是abc123
  
mysql> show databases;       //查看数据库信息
  
+--------------------+
  
| Database           |
  
+--------------------+
  
| information_schema |
  
| mysql              |
  
| performance_schema |
  
| school             |
  
| sys                |
  
+--------------------+
  
5 rows in set (0.01 sec)
  

  

mysql> create database school;     //添加一个school的数据库  
Query OK, 1 row affected (0.00 sec)
  

  

mysql> use school;     //进入school的数据库  
Database changed
  

mysql> create table info (id int,name char(10),score decimal(5,2));     //创建一个表  
Query OK, 0 rows affected (0.11 sec)
  

mysql> desc info;      //查看表结构  
+-------+--------------+------+-----+---------+-------+
  
| Field | Type         | Null | Key | Default | Extra |
  
+-------+--------------+------+-----+---------+-------+

  
|>  
| name  | char(10)     | YES  |     | NULL    |       |
  
| score | decimal(5,2) | YES  |     | NULL    |       |
  
+-------+--------------+------+-----+---------+-------+
  
3 rows in set (0.00 sec)
  

mysql> select * from info;    //查看表内数据  
Empty set (0.00 sec)      //这里还未插入任何数据,所以为空
  

mysql> insert into info (id,name,score) values (1,'zhangsan',75.5);  
Query OK, 1 row affected (0.00 sec)
  

  
mysql> insert into info (id,name,score) values (2,'lisi',77.5);
  
Query OK, 1 row affected (0.00 sec)
  

  
mysql> insert into info (id,name,score) values (3,'wangwu',80);
  
Query OK, 1 row affected (0.00 sec)         //连续插入三个数据
  

mysql> select * from info;     //此时在查看表内数据,发现就有数据存入在表内  
+------+----------+-------+
  
|>  
+------+----------+-------+
  
|    1 | zhangsan | 75.50 |
  
|    2 | lisi     | 77.50 |
  
|    3 | wangwu   | 80.00 |
  
+------+----------+-------+
  
3 rows in set (0.00 sec)
  

mysql> update info set name='zhaoliu' where>
Query OK, 1 row affected (0.00 sec)
  
Rows matched: 1  Changed: 1  Warnings: 0
  

  
mysql> select * from info;     //再次查看表信息
  
+------+----------+-------+
  
|>  
+------+----------+-------+
  
|    1 | zhangsan | 75.50 |
  
|    2 | lisi     | 77.50 |
  
|    3 | zhaoliu  | 80.00 |       //原先的wangwu就被修改为zhaoliu
  
+------+----------+-------+
  
3 rows in set (0.00 sec)
  

mysql> delete from info where>
Query OK, 1 row affected (0.00 sec)
  

  
mysql> select * from info;
  
+------+----------+-------+

  
|>  
+------+----------+-------+
  
|    1 | zhangsan | 75.50 |
  
|    3 | zhaoliu  | 80.00 |     //这里原先的id=2的数据lisi就被删除了
  
+------+----------+-------+
  
2 rows in set (0.00 sec)
  

mysql> drop table info;      //删除info表  
Query OK, 0 rows affected (0.01 sec)
  

  
mysql> select * from info;     //此时在查看表信息,就会报错,该表不存在,因为已经被我们删除了
  
ERROR 1146 (42S02): Table 'school.info' doesn't exist
  

mysql> show databases;     //先查看有哪些数据库  
+--------------------+
  
| Database           |
  
+--------------------+
  
| information_schema |
  
| mysql              |
  
| performance_schema |
  
| school             |
  
| sys                |
  
+--------------------+
  
5 rows in set (0.00 sec)
  

  
mysql> drop database school;     //删除school的数据库
  
Query OK, 0 rows affected (0.00 sec)
  

  
mysql> show databases;        //再次查看时,就可以看到school的数据库已经被删除了
  
+--------------------+
  
| Database           |
  
+--------------------+
  
| information_schema |
  
| mysql              |
  
| performance_schema |
  
| sys                |
  
+--------------------+
  
4 rows in set (0.00 sec)
  

  更多MySQL内容请期待;MySQL索引与事务、MySQL数据库管理。。。。。。。。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-606599-1-1.html 上篇帖子: 浅谈Mysql数据库的备份方案 下篇帖子: 搭建 mysql-mmm 高可用群集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表