1、先检测是否已安装mysql

ps -ef|grep mysql

root              : pts/    :: /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql : pts/ :: /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root : pts/ :: mysql -u root -p
root : pts/ :: grep mysql

如果已安装mysql,需先卸载mysql

2、安装mysql

yum install -y mysql-server mysql mysql-deve

3、启动mysql服务

service mysqld start  //也可以通过/etc/init.d/mysqld start启动

4、设置为开机自启动

chkconfig mysqld on

5、设置root账号的密码

mysqladmin -u root password 'newpwd'

6、为远程客户端连接授权


如何使用priv_type 进行授权

1、单个授权

GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFIED BY [PASSWORD] 'password']...]

priv_type代表允许操作的权限。

database.table代表数据库名.表名

注意*代表所有,如database.*代表该数据库的所有表,*.*代表所有数据库的所有表
user由用户名(User)和主机名(Host)构成,中间用@隔开,最好加上单引号,不加也可以执行通过。

2、多个权限授权使用:

grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

-- 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
-- 当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
-- 当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
-- 用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
-- ‘连接口令’不能为空,否则创建失败。

password代表设置的密码;

例子

授权所有数据库的所有表的所有权限给ip为任意值用户名为test密码为pwd的用户

GRANT ALL ON *.* TO 'test'@'%' IDENTIFIED BY 'pwd';
授权mydb数据库的所有表的增删改查权限给ip为1.1.1.1用户名为test密码为pwd的用户

GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test'@'1.1.1.1' IDENTIFIED BY 'pwd';
授权mydb数据库的stu表的修改权限给ip为1.1.1.1用户名为test密码为pwd的用户

GRANT UPDATE(name,age) ON mydb.stu TO 'test'@'1.1.1.1' IDENTIFIED BY 'pwd';


实践授权

mysql -u root –p     //会提示输入密码,输入上面设置的root新密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpwd' WITH GRANT OPTION;  //*.*表示不对连接的ip做限制

GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password'; 针对某个IP进行授权连接

授权完成提示内容:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'testpwd' WITH GRANT OPTION
-> ;
Query OK, rows affected (0.00 sec)

如果不需要进行全部授权如何删除授权呢?删除不对连接的ip做限制的授权root@'%' 。

mysql> drop user root@'%';
Query OK, rows affected (0.00 sec)

这里的%表示刚刚授权的对象,%表示所有的,如果需要删除某个授权,就将%替换为授权时填写的IP

mysql> drop user root@'192.168.1.4';
Query OK, rows affected (0.00 sec)

如果没有进行授权,链接将会出现错误,这里我拿的是Navicat Premium工具做的测试。

罗列已经授权的用户列表信息  select * from information_schema.user_privileges;

+--------------------+---------------+-------------------------+--------------+
| GRANTEE | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |
+--------------------+---------------+-------------------------+--------------+
| 'root'@'localhost' | NULL | SELECT | YES |
| 'root'@'localhost' | NULL | INSERT | YES |
| 'root'@'localhost' | NULL | UPDATE | YES |
| 'root'@'localhost' | NULL | DELETE | YES |
| 'root'@'localhost' | NULL | CREATE | YES |
| 'root'@'localhost' | NULL | DROP | YES |
| 'root'@'localhost' | NULL | RELOAD | YES |
| 'root'@'localhost' | NULL | SHUTDOWN | YES |
| 'root'@'localhost' | NULL | PROCESS | YES |
| 'root'@'localhost' | NULL | FILE | YES |
| 'root'@'localhost' | NULL | REFERENCES | YES |
| 'root'@'localhost' | NULL | INDEX | YES |
| 'root'@'localhost' | NULL | ALTER | YES |
| 'root'@'localhost' | NULL | SHOW DATABASES | YES |
| 'root'@'localhost' | NULL | SUPER | YES |
| 'root'@'localhost' | NULL | CREATE TEMPORARY TABLES | YES |
| 'root'@'localhost' | NULL | LOCK TABLES | YES |
| 'root'@'localhost' | NULL | EXECUTE | YES |
| 'root'@'localhost' | NULL | REPLICATION SLAVE | YES |
| 'root'@'localhost' | NULL | REPLICATION CLIENT | YES |
此处省略一万字............

7、对my.cnf中的配置进行设置(文件一般在/etc/my.cnf)

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
security risks
symbolic-links=
max_connections =
default-character-set=utf8
max_allowed_packet = 16M
skip-name-resolve
event_scheduler = on

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

常用的几个配置解释 
datadir  数据库的默认安装,默认使用即可,特殊要求可以进行修改安装目录
 socket  用通信连接实现数据交互的文件
 symbolic-links  使用Symbolic Links以支持数据分区存储
 max_connections=1000  最大的连接数
 max_connect_errors=10000  如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞,直到管理员执行flush hosts ; 命令;防止黑客
 back_log=50  接受队列,对于没建立tcp连接的请求队列放入缓存中,队列大小为back_log,受限制与OS参数
 default-character-set=utf8  编码格式
 max_allowed_packet  限制server接受的数据包大小
skip-name-resolve 禁止域名解析
event_scheduler = on   启用mysql的事务(off 关闭)

8、重启mysql服务

/etc/init.d/mysqld restart

9、注意事项

新设置用户或更改密码后需用flush privileges;刷新MySQL的系统权限相关表,否则会出现拒绝访问

进行访问IP授权后的操作无效需要使用flush privileges;  命令刷新权限使其生效

linux进入mysql使用mysql -u root –p 然后输入登录的密码即可,登录后的命令输入记得带上分号 ;表示一串完整的命令输入完整

linux使用yum的方式安装mysql实践的更多相关文章

  1. CentOS 6.5通过yum的方式安装MySql

    一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱 ...

  2. Linux下基于源代码方式安装MySQL 5.6

    MySQL为开源数据库,因此能够基于源代码实现安装.基于源代码安装有很多其它的灵活性. 也就是说我们能够针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码.依据不同的软件平台环境调整相关的编译 ...

  3. Linux上通过docker方式安装mysql

    centos版本信息: docker版本信息 mysql版本:5.7 1.docker方式安装 首先拉取mysql镜像:docker pull mysql:5.7     查看本地的mysql镜像 执 ...

  4. Linux下通用二进制方式安装MySQL

    1.下载glibc版本的MySQL: https://downloads.mysql.com/archives/community/ 2.查看mysql用户和mysql组是否存在(用户和组的信息存在/ ...

  5. Linux下用rpm方式安装MySQL

    1.MySQL下载地址. www.mysql.com/downloads/mysql-4.0.html 下载MySQL 5.1版本的2个包(根据你的实际需求下载所需要的包): MySQL-server ...

  6. centos 7 yum方式安装MySQL 5.6

    本文根据mysql的官方文档操作:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 由于Centos7 默认数据库是mariabd(网上 ...

  7. 基于yum的方式安装Cloudera Manager Agent(使用Mysql 8.0版本)

    基于yum的方式安装Cloudera Manager Agent(使用Mysql 8.0版本) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.选择CDH版本 1>.确认 ...

  8. 基于yum的方式安装Cloudera Manager Server(使用Mysql 8.0版本)

    基于yum的方式安装Cloudera Manager Server(使用Mysql 8.0版本) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装和配置元数据库 1>. ...

  9. CentOS 6.5 RPM包方式安装 Mysql 5.6

    1. 下载MySQL 5.6 下载页面:http://dev.mysql.com/downloads/mysql/此处选择“Red Hat Enterprise Linux 6 / Oracle Li ...

随机推荐

  1. 【2016美团】浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了如下哪些技术

    A.非对称加密技术 B.对称加密技术 C.散列(哈希)算法 D.数字证书 答案:ABCD HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数 ...

  2. 分享基于分布式Http长连接框架

    第一次在博客园写文章,长期以来只是潜水中.本着不只索取,而要奉献的精神,随笔文章之. 现贡献一套长连接的框架.如下特性: 1:发布者可异步发送消息,消息如果发送失败,可重试发送,重试次数基于配置,消息 ...

  3. Javascript写的一个可拖拽排序的列表

    自己常试写了一个可拖拽进行自定义排序的列表,可能写的不太好,欢迎提供意见. 我的思路是将列表中的所有项都放进一个包裹层,将该包裹层设为相对定位,每当点击一个项时,将该项脱离文档并克隆一份重新添加到文档 ...

  4. Paint the Grid Reloaded ZOJ - 3781 图论变形

    Paint the Grid Reloaded Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %ll ...

  5. 关于Android路由的实现

    先说一下背景,目前有需求从外部包括其他应用和WEB跳转到我们自己的APP,就这么个简单的需求-- 要实现这种外部跳转的功能,我们可以理解为打算跳转的一方有多少方式通知到APP进行相对的响应行为.所以, ...

  6. C#进阶之AOP

    一.AOP概念(转自) AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技 ...

  7. 第五章 MySQL事务,视图,索引,备份和恢复

    第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...

  8. 媲美jQuery的JS框架——AngularJS(一)

    前言 相信原生JS大家都不陌生,至于为什么说原生,是因为在JS的基础上衍生出了很多的框架.有些框架的使用非常广泛,甚至已经达到了媲美原生的地步.在之前的文章中给大家介绍了jQuery这一介绍框架.今天 ...

  9. win10 UWP Hmac

    HMAC是密钥相关的哈希运算消息认证码,输入密钥和信息. 在uwp,Hmac在很多网络使用,我最近写qiniu SDK,把原来C#改为UWP,需要使用HMAC. 上传文件 <form metho ...

  10. 张高兴的 Windows 10 IoT 开发笔记:ToF Sensor VL53L0X

    GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/VL53L0X