基于centos7搭建MySQL数据库

本文包括mysql服务的安装配置,和简单的使用,还包括了对mysql用户账号的授权管理,前部分为安装,后面一半为用户授权管理及简单使用(增删改查):

一、安装配置MySQL数据库:

为了确保MySQL数据库功能的完整性、可定制性,我采用了源代码编译安装的方式安装MySQL数据库系统,MySQL5.X系列版本的使用最为广泛,该版本的稳定性、兼容性都不错,下载源码包的官方站点为https://www.mysql.com 。

现在MySQL已经被甲骨文公司收购了,而且甲骨文公司有意将MySQL发展为一个收费的产品,所以Linux为了避免以后的版权问题,就将MySQL数据库改成了MariaDB,MariaDB和MySQL在功能和使用上,并没有太大的区别,不过呢,大多数认为MySQL源码安装比使用Linux系统盘中的MariaDB要好一些,所以,还是使用源码安装吧,起码现在还是免费的。

1、为了避免发生程序冲突、端口冲突等问题,可以先执行以下命令,进行删除系统自带的mysql程序:


[[email protected] ~]# yum -y erase mysql

2、挂载centos系统盘,安装ncurses-devel包:

[[email protected] ~]# mount /dev/cdrom /media
[[email protected] ~]# cd /media/Packages/
[[email protected] Packages]# rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 

3、由于mysql 5.x系列版本需要cmake编译安装,所以继续安装cmake包:


[[email protected] media]# tar zxf cmake-2.8.6.tar.gz -C /tmp                 #解包
[[email protected] media]# cd /tmp/cmake-2.8.6/
[[email protected] cmake-2.8.6]# ./configure && gmake && gmake install      #配置,编译安装

4、创建专门用来运行mysql服务的用户,此用户不需要直接登录到系统:

[[email protected] cmake-2.8.6]# groupadd mysql
[[email protected] cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql

5、将下载的mysql源码包解压,并进行配置,编译及安装(千万要注意大小写,不要打错配置项,就算错误也可以继续后续的安装,但是,最后服务是无法启动的,千万不要打错字母,千万不要打错字母,千万不要打错字母,重要的事情说三遍):

[[email protected] media]#tar zxf mysql-5.6.36.tar.gz -C /tmp              #解压至/tmp目录
[[email protected] cmake-2.8.6]# cd /tmp/mysql-5.6.36             #切换至展开后的源码目录
[[email protected] mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[[email protected] mysql-5.6.36]# make && make install          #编译并安装

上述各个配置项中的含义如下:

6、对数据库目录进行权限设置:

[[email protected] mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql

7、建立配置文件:

centos 7系统下默认支持MariaDB数据库,因此系统默认的/etc/my.cnf配置文件中是MariaDB的配置文件,而在mysql的源码目录中提供了mysql数据库默认的样本配置文件,在启动mysql数据库之前,需要先将原有的my.cnf文件替换为mysql提供的配置文件内容。

[[email protected] mysql-5.6.36]# rm -rf /etc/my.cnf              #删除原有配置文件
[[email protected] mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
#复制源码包中的配置文件到/etc/下

8、初始化数据库:

[[email protected] mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

9、设置环境变量(为了方便在任何目录下使用mysql命令):

[[email protected] mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[[email protected] mysql-5.6.36]# .  /etc/profile             #立即生效

10、添加系统服务(两种方法,看完这一块,再选择其中之一即可):

1)、如果希望添加mysqld系统服务,以便通过systemctl 进行管理,可以直接使用源码包中提供的服务脚本,如下:

[[email protected] mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
#复制到安装目录中
[[email protected] mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh
#赋予执行权限

2)、创建mysql系统服务的配置文件/usr/lib/systemd/system/mysqld.service,将其添加为mysqld系统服务:

上面的配置文件纯手打,编写完以后,保存退出后,即可使用systemctl工具来控制mysql数据库服务了。

方法二:

若嫌编写配置文件麻烦,可以换另一种方法:

当对/usr/local/mysql/bin/mysqld.sh 赋予执行权限后,继续以下操作:

[[email protected] mysql-5.6.36]# cp /usr/local/mysql/bin/mysqld.sh /etc/init.d/mysqld
[[email protected] mysql-5.6.36]# vim /etc/init.d/mysqld 

修改后,保存退出。继续执行如下命令:

[[email protected] mysql-5.6.36]# chkconfig --add mysqld            #添加为系统服务

以上便是两种添加系统服务的方法,二选一即可,只是方法二无法使用systemctl enable mysqld命令来设置开机自动启动。

11、启动服务并登录到mysql服务器:

[[email protected] mysql-5.6.36]# systemctl start mysqld                #启动服务
[[email protected] mysql-5.6.36]# systemctl status mysqld             #查看服务状态是否正常
[[email protected] mysql-5.6.36]# mysql -u root              #使用root用户登录到mysql数据库

需要注意的是,此root账号与系统root账号没有半毛钱关系,只是凑巧mysql的管理员账号也是root。初次安装没有密码。可以使用下面命令来进行配置密码:

[[email protected] /]# mysqladmin -u root password                #为用户root设置密码
New password:                 #输入密码
Confirm new password:              #再次确认

如果用户有密码,想要对密码进行更改,那么,要使用如下命令:

[[email protected] /]# mysqladmin -u root -p password            #更改密码
Enter password:                                 #输入旧密码
New password:              #输入新密码
Confirm new password:                 #再次确认

在用户没有密码的情况下,使用以下命令来登录到mysql数据库:


[[email protected] mysql-5.6.36]# mysql -u root 

若用户有密码,则需要加 -p选项:


[[email protected] /]# mysql -u root -p

登录到mysql服务器后,即可执行SQL语句,每条mysql操作语句以分号“;”结尾,若没有输入分号便按了回车键,则相当于换行。一切命令不区分大小写,使用status可以查看当前数据库服务的基本信息,使用exit可以退出mysql命令工具。

二、数据库用户授权及简单操作(增删改查):

1、授予权限:

grant  权限列表  on  库名.表名   to  用户名@来源地址  [ identified  by  ‘密码‘]

使用grant语句,需要注意以下几点:

grant用法示例:

mysql> grant select on test.* to ‘zhangsan‘@‘localhost‘ identified by ‘123456‘ ;
#创建一个用户名为张三,密码为123456,用本地主机登录,对test库中所有的表可以执行select语句。

2、查看zhangsan使用本地主机登录的权限:

mysql> show grants for ‘zhangsan‘@‘localhost‘;

3、撤销权限:

mysql> revoke all on test.* from ‘zhangsan‘@‘localhost‘;

需要注意的是,赋予权限时是怎么指定库和表的,撤销时必须以同样的方式指定,若赋予权限时使用test.user(test库中的user表),那么,撤销权限时若使用test.*将会报错。

4、查看当前服务器中的所有库:

mysql> show databases;

5、使用use语句切换库,并且查看库中的表:

mysql> use mysql;                     #切换至mysql库

mysql> show tables;              #查看库中的所有表

6、查看表的结构:

mysql> use mysql;                        #切换至mysql库

mysql> describe user;            #查看表的结构

7、创建新的库:

mysql> create database test2;                  #创建一个名为test2的库。

8、创建新的表:

mysql> create table 表名 (列名1 类型,列名2 类型,.... ,primary key (主键名));

示例,创建一个简单的员工信息表:

mysql> create table yuangongxinxi (xingming char(16) not null,
xingbie char(4)), nianling int, gonghao int, primary key (gonghao));
#新建表名为员工信息。包含的列有姓名、年龄、工号等,并将工号设置为主键。

9、向刚刚的表中插入一条员工信息:

mysql> insert into yuangonxinxi(xingming,xingbie,nianling,gonghao) values (‘zhangsan‘,‘nan‘,‘25‘,‘100‘);

10、查询表中的数据(也可加where语句来指定查询特定的行,或使用列名而不用星号来查询特定的列):

mysql> select * from yuangonxinxi;

11、修改数据记录:

mysql> update yuangonxinxi set nianling=‘30‘ where xingming=‘zhangsan‘;              #修改zhagnsan的年龄为30

12、删除数据记录:

mysql> delete from yuangonxinxi where xingming=‘zhangsan‘;                      #删除zhangsan的数据记录

13、删除刚刚创建的数据表:

mysql>  drop table test2.yuangongxinxi;

14、、删除刚才创建的库:

mysql> drop database test2;

原文地址:https://blog.51cto.com/14154700/2394026

时间: 2024-08-28 11:17:06

基于centos7搭建MySQL数据库的相关文章

基于keepalived搭建MySQL的高可用集群

http://www.cnblogs.com/ivictor/p/5522383.html 基于keepalived搭建MySQL的高可用集群 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和PXC. 对于小公司,一般推荐使用keepalived+双主,简单. 下面来部署一下 配置环境: 角色                          

基于CentOS7搭建mongodb(3.6.6版本)

基于CentOS7搭建mongodb(3.6.6版本) mongodb简介 Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++开发.MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,

基于amoeba实现mysql数据库的读写分离/负载均衡

一.Amoeba的简述:[来自百度百科] Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡.读写分离.高可用性等需求.与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单). Amoeba相当于一个SQL请求的路由器,目的是为

基于Jax-WS和Mysql数据库的WEB服务开发

基于Jax-WS和Mysql数据库的WEB服务开发 1 简介 近几年来,SOA,EAI等架构体系的日渐成熟,Webservice越来越炽手可热,尤其是在企业做异质平台整合时成为了首选的技术.Java的Webservice技术更是层出不穷,比较流行的有:Axis2,XFire以及JaxWS. JAXWS适合几乎所有Webservice客户端的调用,因此不少巨头型的厂商如:IBM,Weblogic等,在他们的产品上都使用了以JAXWS为标准的Webservice接口. 另外,由于实验室的项目目前采用

linux【搭建MySQL数据库】详细过程

实验环境:rad hat linux 6.2操作系统. 实验目的:手工编译搭建MySQL数据库. 首先是挂载光盘,创建文件夹,挂载从网上下载下来的mysql数据库源码安装包.然后创建yum仓库,用于安装MySQL环境包. 使用yum仓库解决安装环境的依赖性关系gcc.gcc-c++语言环境. 继续安装MySQL数据库所需要使用的环境包cmake.ncurses-devel.bison.libao-devel包. 然后解压从网上下载下来的MySQL数据库源码包,创建MySQL数据库用户,并且指定不

Linux—Centos7.4之搭建Mysql数据库主从同步、读写分离

MySQL主从同步与读写分离 目录第一部分 实验环境第二部分 配置主从同步第三部分 配置读写分离第四部分 测试验证 第一部分 实验环境 实验拓扑图: 服务器五台:1)客户端服务器一台:IP地址:192.168.80.10(client)需安装软件:mysql-boost-5.7.20.tar.gz 2)Amoeba调度服务器一台:IP地址:192.168.80.20(amoeba)需安装软件:jdk-8u144-linux-x64.tar.gzamoeba-mysql-3.0.5-RC-dist

基于keepalived搭建mysql双主高可用

目录 概述 环境准备 keepalived搭建 mysql搭建 mysql双主搭建 mysql双主高可用搭建 概述 传统(不借助中间件)的数据库主从搭建,如果主节点挂掉了,从节点只能读取无法写入,只能把人肉去恢复故障,既不想引用中间件也不想人肉恢复故障,可以折中选择双主方案,本文将介绍通过keepalived搭建mysql双主方案. 本例中vip为:172.16.0.169,  两台mysql实例服务器ip分别为:172.16.0.1和172.16.0.2 转帖请注明来源: https://my

基于docker的php调用基于docker的mysql数据库的方法

1:建立基于docker的mysql,参考 Mac上将brew安装的MySql改用Docker执行 2:建立基于docker?php image 在当前目录,建立Dockerfile,内容如下 FROM php:7.0-cli MAINTAINER Terry Zhang <[email protected]> RUN docker-php-ext-install pdo_mysql mysqli 3.建立php镜像 docker build -t php-mysql . 4. 编写php脚本

Linux学习-基于CentOS7的MariaDB数据库的主从复制

一.MySQL主从复制原理 主从同步过程中主服务器有一个工作线程I/O dump thread,从服务器有两个工作线程I/O thread和SQL thread: 主服务器: dump Thread:为每个Slave的I/O Thread启动一个dump线程,用于向其发送binary log events: 从服务器: I/O Thread:向Master请求二进制日志事件,并保存于中继日志中: SQL Thread:从中继日志中读取日志事件,在本地完成重放. 主库把外界接收的SQL请求记录到自