本文包括 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;
来源: http://www.bubuko.com/infodetail-3057852.html