Spark配置MySQL

目录

一、安装MySQL

二、mysql shell

三、MySQL中文乱码的问题

四、MySQL密码

 1.查看MySQL默认密码 

 2.修改MySQL密码

 3.错误示例 

五、重启MySQL服务 

六、pyspark 连接 mysql数据库

七、完全卸载MySQL


一、安装MySQL

sudo apt-get update  #更新软件源
sudo apt-get install mysql-server  #安装mysql

 1.导入mysql版本的mysql-connector-j-8.0.33.jar包

mysql --version  #查看MySQL版本信息

 2.启动mysql服务器

service mysql start

 3.确认是否启动成功

sudo systemctl status mysql
Ctrl + Z  #键盘 退出mysql状态
sudo netstat -tap | grep mysql  #找不到netstat命令

二、mysql shell

 1.开启mysql shell

mysql -u root -p

 2.退出 mysql shell 

exit
quit

三、MySQL中文乱码的问题

1.修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

 在[mysqld]下添加一行 

character_set_server=utf8

 2.重启MySQL服务

service mysql restart

 3.查看MySQL目前设置的编码

show variables like "char%";

四、MySQL密码

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’ 

  •  查看MySQL默认密码 

sudo cat /etc/mysql/debian.cnf  #查看MySQL默认用户名密码ecAw5SYgMW5zV6m1
mysql -udebian-sys-maint -p     #以默认密码形式进入MySQL shell
  •  修改MySQL密码

1.进入mysql

sudo mysql  #强制进入MySQL shell
use mysql;

2.修改密码

(1)修改本地访问的MySQL密码

# 只允许本地访问的
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

(2)修改远程访问root的MySQL密码

# 远程访问root
mysql> UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
mysql> flush privileges;

 修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf, 把bind-address = 127.0.0.1注释,即在bind-address = 127.0.0.1前面加‘#’

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

3.重启MySQL服务 

service mysql restart  #重启mysql服务
  • 错误示例 

1.重置密码失败

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';  
mysql> FLUSH PRIVILEGES;        #修改PLUGIN设置

2.mysql旧版本语句  --语法错误

1.
UPDATE mysql.user SET authentication_string=PASSWORD('000'), PLUGIN='mysql_native_password' WHERE USER='root';

2.
FLUSH PRIVILEGES;  
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('000'); --MySQL 5.6.0版本

五、重启MySQL

service mysql restart
service mysql stop    #关闭服务
service mysql start   #开启服务
/etc/init.d/mysql stop
/etc/init.d/mysql start

 重新登录 mysql shell

mysql -uroot -p

六、pyspark 连接 mysql数据库

1. 启动MySQL数据库

2.启动pyspark,指定mysql连接驱动jar包

cd /usr/local/spark
./bin/pyspark 
--jars /usr/local/spark/jars/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33-bin.jar --driver-class-path /usr/local/spark/jars/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33-bin.jar

 3.连接数据库,读取数据

# mysql8.0.xx版本的语句
>>> jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/spark?useUnicode=true&useCharacter=UTF-8&useSSL=true").option("driver","com.mysql.cj.jdbc.Driver").option("dbtable", "student").option("user", "root").option("password", "123456").load()
>>> jdbcDF.show()

七、完全卸载MySQL

···bash
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
···

Apache PySpark 是一个用于大规模数据处理的库,它可以与 Apache Spark 结合使用,提供了一种基于 Python 的接口来操作分布式数据。连接 MySQL 8 数据库在 PySpark 中通常通过 JDBC (Java Database Connectivity) 来实现,因为 Spark 支持通过 JDBC 连接任何支持 JDBC 的数据库,包括 MySQL。 以下是一个基本步骤来在 PySpark 中连接 MySQL 8 数据库: 1. **安装PyMySQL库**:首先,你需要在你的 Python 环境中安装 PyMySQL,这是一个 Python 的 MySQL 客户端库。你可以使用 pip 命令来安装: ```bash pip install mysql-connector-python ``` 2. **配置JDBC驱动**:虽然 PyMySQL 是用来连接 MySQL 的,但 PySpark 需要 JDBC 驱动。下载并添加 MySQL 的 JDBC 驱动(`mysql-connector-java`)到你的项目或者系统的 JAR 文件路径。 3. **创建 SparkSession**:在你的 PySpark 代码中,创建一个 `SparkSession`,并指定 JDBC URL、用户名和密码: ```python from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("PySpark_MySQL") \ .config("spark.jars", "/path/to/mysql-connector-java.jar") \ .getOrCreate() ``` 确保将 `/path/to/mysql-connector-java.jar` 替换为实际的 JAR 文件路径。 4. **建立连接**: ```python jdbc_url = "jdbc:mysql://your_mysql_host:port/your_database?user=username&password=password" df = spark.read.format("jdbc") \ .option("url", jdbc_url) \ .option("dbtable", "your_table_name") \ .option("driver", "com.mysql.cj.jdbc.Driver") \ .load() ``` 将 `your_mysql_host`、`port`、`your_database`、`username` 和 `password` 替换为你的 MySQL 实际信息,`your_table_name` 是你想查询的表名。 5. **执行查询**:现在你可以像操作 DataFrame 一样对加载的数据执行 SQL 查询了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值