安装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,所有库,所有表和所有客户机
image.png
授权成功!
测试访问
quit; #推出mysql
su ubuntu18-64 # 进入一般用户
mysql -h127.0.0.1 -p3306 -uyxlhz -pyxlhz
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; # 可以查看插入了三条记录
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;
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; # 可以查看插入了三条记录
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库成功!
image.png好啦,就简单分享到这里!
如果您觉得文章有用,可以打赏下吐血过度的一血老黄忠,鼓励写出更优秀的原创文章。
网友评论