linux使用yum的方式安装mysql实践

1、先检测是否已安装mysql

ps -ef|grep mysql

root      4943     1  0 16:11 pts/2    00:00:00 /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     5060  4943  0 16:11 pts/2    00:00:00 /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      5250  3079  0 16:32 pts/2    00:00:00 mysql -u root -p
root      5289  5271  0 16:54 pts/1    00:00:00 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 [email protected]‘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, 0 rows affected (0.00 sec)

如果不需要进行全部授权如何删除授权呢?删除不对连接的ip做限制的授权[email protected]‘%‘ 。

mysql> drop user [email protected]‘%‘;
Query OK, 0 rows affected (0.00 sec)

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

mysql> drop user [email protected]‘192.168.1.4‘;
Query OK, 0 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=0
max_connections = 1000
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 然后输入登录的密码即可,登录后的命令输入记得带上分号 ;表示一串完整的命令输入完整

时间: 2024-08-18 01:13:09

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

(0.2.3)Linux平台下二进制方式安装mysql

本章节:二进制安装mysql 目录: 1.基于Linux平台的Mysql项目场景介绍 2.mysql数据库运行环境准备-最优配置 3.如何下载mysql数据库 4.linux平台下二进制文件方式安装mysql 4.1.环境检查(libaio包) 4.2.安装过程 (1)下载文件.上传安装程序 (2)创建用户,组,创建目录 (3)解压安装程序包 (4)修改权限(授权用户对解压目录的权限) (5)配置环境变量(以便可以直接运行mysql命令) (6)准备参数配置文件 (7)开始初始化Mysql (8

CentOS 6.5通过yum的方式安装MySql

一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱不得不首先推荐的是mysql数据库了,而且Mysql数据库的第一个版本就是发行在Linux系统上的. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内

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

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处. https://blog.csdn.net/robinson_0612/article/details/26485851 ??? MySQL为开源数据库,因此能够基于源代码实现安装. 基于源代码安装有很多其它的灵活性.也就是说我们能够针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码.依据不同的软件平台环境调整相关的编译參数,选择自身须要选择不同的安装组件,设定须要的字符集等等一些能够依据特定应用场景所作的各种调整.本文描写叙

linux下采用binary方式安装mysql步骤

1.下载binary文件 在http://dev.mysql.com/downloads/mysql/官网上下载 mysql-5.6.36-linux-glibc2.5-i686.tar.gz. 2.解压文件并移动到/usr/local/mysql目录下 tar -zxvf mysql-5.6.36-linux-glibc2.5-i686.tar.gz 3.创建用户组和用户并配置 groupadd mysql useradd mysql -g mysql chown -R mysql /usr/

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

MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文描述了如何在源码方式下安装MySQL. 1.安装环境及介质#安装环境SZDB:~ # cat /etc/issueWelcome to SUSE Linux Enterprise Server 10 SP3

yum方式安装mysql报错找不到mysql.sock

yum方式安装mysql省去了源代码包安装的许多步骤,但是有时会遇见mysql yum包装完mysql之后,在启动mysql服务时,启动不了的问题,报错: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2),找不到mysql.sock文件,mysql.sock文件是安装mysql之后初始化数据库之后才会出现的,因此在安装完包之后,做一下步骤: 添加 mysqld 服务. /sbin/chkconfig

Linux下rpm方式安装mysql

1,首先需要去下载rpm包: 镜像地址:http://mysql.mirrors.pair.com/Downloads/ 根据不同的版本选择下载即可,我下载的是: MySQL-server-5.6.20-1.el6.i686.rpm MySQL-client-5.6.20-1.el6.i686.rpm MySQL-devel-5.6.20-1.el6.i686.rpm(这个包备用) 因为采用rpm方式安装mysql的话,那么只安装好mysql-server是不能够在命令行模式下连接mysql的,

CentOS7下通过rpm方式安装MySQL及插入中文问题解决 [原创]

一 CentOS下通过rpm方式安装MySQL CentOS版本:CentOS-7 MySQL版本:MySQL-5.6.22 在网上搜了一下,Linux下安装MYSQL有三种方式: 1) 通过yum命令在线下载安装 2) 下载离线rpm安装包安装 3) 下载源码编译安装 方式1不打算用,因为我们大部分项目服务器是不能直接上Internet的,网上关于在线安装的教程很多,方式3对于只要应用MYSQL的人来说没必要多此一举. 1. 解压下载的zip包,会发现有以下几个rpm包: MySQL-clie

Windows下安装mysql实践

安装mysql-essential-5.1.36-win32.msi (2009年的),懒得下载新的了. 安装时,先前安装的phpedit构成干扰,其license过期了,也找不到了.卸载phpedit,重新安装,结果启动mysql服务,出现1067错误. 解决这个问题,网上有一些指导.进入D:\Develop\MySQL\MySQL Server 5.1,拷贝my-small.ini,重命名为my.ini. 于是解决这个问题.中间曾把my.ini拷贝到c:\windows下. Linux下my