学习目标:
了解什么是Mysql
如何安装Mysql
学习内容:
- 资料库概念
- 资料库管理系统概念
- 资料库管理系统分类
- SQL是什么
- 安装Mysql
- 启动Mysql并建立一张测试表格
正文部分
-
资料库
比如你喜欢摘抄优美的词句,那些优美的词句就是一种文字资料,而你保存和记录的摘抄本就是一个储存资料的资料库。
同时你的摘抄本也是一种资料,当很多本摘抄本放在一起时,他也是一个资料库。简单说就是:数据 + 记录载体 + 保管方式
-
资料库管理系统(DBMS)
资料库小的时候可以手动管理
资料库大的时候可以借助资料库管理系统进行管理,并且方便我们进行检索。
资料库管理系统可以认为是一个大管家,你把资料递给他,他就会帮你组织成合适的资料库,同时你需要资料的时候,他再取出来。而我的学习对象Mysql就是一种资料库管理系统。我把资料递给他他会帮我进行组织和管理,方便资料的储存和检索等。
资料库管理系统可以分为两大类:
- 关系型:存放形式是一张张表格
- Mysql
- Oracle
- PostgreSql
- SQL service
- 非关系型:存放形式多样
- MogoDB
- Redis
- DynamoDB
- 关系型:存放形式是一张张表格
-
SQL
structured query language,字面意思就是 结构性查询语言,是一种特定格式的用于关系型数据库查询的语言就是你和大管家沟通的语言。
-
ubuntu下安装 Mysql
至于为什么选择ubuntu安装而不是在windows系统下安装,因为我目前了解到的知识有限。
我的笔记本是windows加上WSL ubuntu系统,如果我在子系统安装了Mysql 可以定期执行自动化脚本获取一些信息存然后利用Mysql管理。
同时在windows下可以用一些客户端连接和访问的,同时我也可以在Rstudio中访问Mysql。 -
登录Mysql并建立一张测试表格
这里将演示具体的安装步骤以及每一步的截图,最后会在ubuntu终端界面和windos图形界面以及Rstudio中分别访问Mysql。
这里开始安装了
然后,我是没有更换apt的镜像源,所以下载的很慢。
其他人可以更换下镜像源。
sudo apt update
sudo apt upgrade
sudo apt search mysql-server
sudo apt install mysql-server
可能是用户权限问题,导致最后有些错误。
which mysql #显示我现在有这个执行文件了,也就是mysql的服务没有开启
sudo service mysql restart # NM又开始报错,不过我看到相关进程存在了
ps -aux |grep "mysql" # 再捣鼓一下
sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql restart # 这次可以了
需要设置Mysql root账号的密码,然后创建一个非 root账号,用以日常使用
# 这是因为第一次登陆才这样搞,等设置好密码后需要账号密码才能登陆
sudo mysql -uroot #此时将进入mysql的命令行界面
MySQL中用户相关信息存储于mysql数据库中,需要现转换到mysql数据库
show databases;
use mysql;
show tables;
最下面有一张表格 user 记录了用户信息。
select user,host,plugin from user;
上面的localhost说明只允许本地登录
MySQL8.0 中用户默认认证方式为 caching_sha2_password
MySQL5.X常用的mysql_native_password方式,只有此种方式才能在MySQL8.0中更改用户密码
下面就进行认证方式和密码的修改:
alter user 'root'@'localhost' identified with mysql_native_password by 'your_new _password';
flush privileges;
然后,我们退出Mysql,重启服务后使用账号密码登录。
quit;
sudo service mysql restart
sudo mysql -u root -p # 命令行会提示你输入密码,然后进入mysql 命令行
设置root用户的远程访问。此时root用户的host属性仍然是localhost,也就是只能从本地访问,因此可以将root用户的访问权限由本地改为本地和外部都可以访问,将host的值由localhost改为 %。
use mysql;
show tables;
update user set user.host='%' where user.user='root';
flush privileges;
select user,host,plugin from user;
此时root用户的host访问权限已经改为本地和外部都可以。但是配置文件还需要修改一下。
重启MySQL服务,即可实现远程连接。
WSL中的Ubuntu子系统访问可以直接使用127.0.0.1或localhost进行访问。
- 修改配置文件
sudo vim /etc/mysql//mysql.conf.d/mysqld.cnf
sudo service mysql restart
修改 bind-address = 0.0.0.0 。
重启MySQL后,即可实现通过IP地址远程连接。
- 我这里演示一下windows下访问wsl安装的mysql,以及Rstudio中访问wsl安装的mysql。然后像创建普通用户用于日常工作的部分,会单独记录,因为用户组管理也很复杂。
我自己装了一个windows下的Mysql workbench:
- Rstudio 访问wsl 下安装的Mysql
也就是windows安装 ODBC数据库驱动程序并且配置好
然后R 中安装 RODBC ,这样 RODBC操控ODBC,通过ODBC和Mysql通信实现数据的获取
这里演示下ODBC驱动的配置:
我在安装workbenck的时候已经安装了ODBC驱动了。
直接 win + R 调出来搜索,输入ODBC然后找到应用,开始配置。
点击添加:
面板中的几个选项:
- Data Sounrce Name:数据原名称,之后我们在R中调用相应的数据库需要提供的一个名称,可取任意有效的名称,比如这里我可以取名Mysql.1
- Description:可不填
- TCP/IP:这里我们需要连接到本地的数据库,所以直接填写localhost
- User:mysql数据库的用户名,这个是在安装mysql的时候配置的,一般默认是root
- Password:访问数据库的密码,也是我们最初在安装配置mysql的时候设定的
- Database:数据库名称,数据库必须是已经存在于mysql中的数据库
点击ok就表示连接成功了,然后再R里面加载RODBC,进行连接驱动就可以了
比较不爽的是每一张表都需要设置一次ODBC嘛,我再去研究研究。
- 最后如何卸载Mysql
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean