Mysql on Linux——数据分析师不懂黑科技

安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo service mysql start

授权用户访问数据库

创建用户

su root # 进入管理员权限
mysql # 注意没有授权用户前,只有管理员权限可以访问mysql,即超级用户
grant all privileges on *.* to "yxlhz"@'%' identified by "yxlhz"  with grant option; # 授权超级用户yxlhz,所有库,所有表和所有客户机
Mysql on Linux——数据分析师不懂黑科技_第1张图片
image.png

授权成功!

测试访问

quit; #推出mysql
su ubuntu18-64 # 进入一般用户
mysql -h127.0.0.1 -p3306 -uyxlhz -pyxlhz 
Mysql on Linux——数据分析师不懂黑科技_第2张图片
image.png

在未授权用户之前,一般用户无法访问,但是授权后,授权用户访问成功!

创建数据库(laozhuangzhong)和表(test)

show databases; #查看数据库列表
create database laohuangzhong; #创建数据库
use laohuangzhong; #使用laohuangzhong数据库
create table test(ID char(10),name char(10),age tinyint(2)); #建表
insert into test  values('123','lhx',30);
insert into test  values('111','lhz',20);
insert into test  values('112','lhz1',21);
select * from test; # 可以查看插入了三条记录
Mysql on Linux——数据分析师不懂黑科技_第3张图片
image.png

授权用户laohuangzhong库权限

之前我们已经授权yxlhz超级用户权限,现在我授权用户指定库laohuangzhong的权限

grant SELECT,INSERT,UPDATE,DELETE,CREATE,DROP on laohuangzhong.* to 'lhz1'@'localhost' IDENTIFIED BY 'lhz1'; #授权一般用户

现在查看一下用户列表

select host,User from mysql.user;
Mysql on Linux——数据分析师不懂黑科技_第4张图片
image.png

我们发现所有授权用户都存储在mysql.user表里。因此,我们也是可以通过修改user表来进行用户授权或取消授权的。这里不介绍了,各位都会sql操作。

创建数据库(lhz)和表(test1)

show databases; #查看数据库列表
create database lhz; #创建数据库
use lhz; #使用lhz数据库
create table test1(ID char(10),name char(10),age tinyint(2)); #建表
insert into test1  values('123','lhx',30);
insert into test1  values('111','lhz',20);
insert into test1  values('112','lhz1',21);
select * from lhz.test1; # 可以查看插入了三条记录
Mysql on Linux——数据分析师不懂黑科技_第5张图片
image.png

R连接mysql

安装RMySQL包

R
install.packages("RMySQL")

安装失败,错误提示如下:

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because no mysql client library was found. Try installing:
 * deb: libmariadbclient-dev | libmariadb-client-lgpl-dev (Debian, Ubuntu)
 * rpm: mariadb-connector-c-devel | mariadb-devel | mysql-devel (Fedora, CentOS, RHEL)
 * csw: mysql56_dev (Solaris)
 * brew: mariadb-connector-c (OSX)
If you already have a mysql client library installed, verify that either
mariadb_config or mysql_config is on your PATH. If these are unavailable
you can also set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'

意识就是没安装mysql客户端,或者客户端安装后没有添加到系统变量里,R没找到。
我们不折腾系统PATH变量了,使用R建议的客户端试试。

sudo apt-get install libmariadbclient-dev # 安装客户端
R
install.packages("RMySQL")

成功安装。

R连接mysql

library(RMySQL)
con <- dbConnect(RMySQL::MySQL(), 
                 dbname = "laohuangzhong",host = "localhost",port = 3306,user="yxlhz",password="yxlhz")

dbGetQuery(con,"select * from laohuangzhong.test")
dbDisconnect(con)

使用超级用户yxlhz,连接成功!

  • 现在我们体验下超级用户和一般用户的差别!我们知道lhz1用户,只有laohuangzhong库的权限。
  • lhz1没有lhz库的权限,应该会连接失败。
library(RMySQL)
con <- dbConnect(RMySQL::MySQL(), 
                 dbname = "lhz",host = "localhost",port = 3306,
                 user="lhz1",password="lhz1")  

连接失败!

  • lhz1连接laohuangzhong库试试,应该会成功。
con <- dbConnect(RMySQL::MySQL(), 
                 dbname = "laohuangzhong",host = "localhost",port = 3306,
                 user="lhz1",password="lhz1")  
dbDisconnect(con)

lhz1用户连接laohuangzhong库成功!

Mysql on Linux——数据分析师不懂黑科技_第6张图片
image.png

好啦,就简单分享到这里!

如果您觉得文章有用,可以打赏下吐血过度的一血老黄忠,鼓励写出更优秀的原创文章。

你可能感兴趣的:(Mysql on Linux——数据分析师不懂黑科技)