mysql的安装和配置

前述

两部分内容,分别是Ubuntu和Mac OS下mysql的安装,其中,本人ubuntu为测试环境使用,需要开启远程连接mysql,mac为本地环境,可本机连接即可。

Ubuntu安装mysql

ubuntu版本选择了16.04。
直接执行以下安装命令即可安装成功:

apt install mysql-server
apt install mysql-client
apt install libmysqlclient-dev

安装完成后,可以使用如下命令检查是否安装成功

sudo netstat -tap | grep mysql

设置远程访问,需要编辑文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address = 127.0.0.1所在行,将该行注释掉。

# bind-address = 127.0.0.1

进入mysql,输入密码

mysql -uroot -p

执行如下语句

grant all on *.* to root@'%' identified by '密码内容' with grant option;
flush privileges;

退出mysql,重启

/etc/init.d/mysql restart

至此,可以远程连接到该mysql。
如果是选择的是阿里云,需要后台开启3306端口,否则也是无法连接上的。

Mac OS安装mysql

本地电脑使用的系统版本是macOS Catalina 10.15.7。
mysql版本使用的5.7,可以从官网下载。
mac OS下安装就比较简单了,双击按照步骤来即可。
安装完成后,点击系统偏好设置,最下方会出现mysql图标,如图
在这里插入图片描述

点击mysql后,进入的页面可以启动或者停止mysql运行,如下图
在这里插入图片描述

可视化工具

建议使用Navicat_Premium,其中15版本可以搜索到破解版,可以一试。
在这里插入图片描述

Java实现linux下mysql备份

需要确保本地已经安装了mysql,此时除了可以备份本机的,也可以备份其他可以访问的mysql。
备份语句为:

mysqldump -h 主机ip -u用户名 -p密码 数据库名 > 保存文件路径和文件名.sql

举例

mysqldump -h 127.0.0.1 -uroot -p123456 dbtest > /usr/local/db/2022.sql

将执行的命令放到java代码中,传入响应参数即可。

import java.io.File;

public class BackupUtil {
	
	public static void dbBackup(String host, String username, String authenticate, String dbName, String destination, String backName){
        File backupDir = new File(destination);
        if(!backupDir.exists()){
            backupDir.mkdirs();
        }
        try {
            File sqlFile = new File(backupDir,backName);
            if(!sqlFile.exists()){
                sqlFile.createNewFile();
            }
            StringBuffer buffer = new StringBuffer();
            buffer.append("mysqldump");
            buffer.append(" -h " + host);
            buffer.append(" -u"+username);
            buffer.append(" -p"+authenticate);
            buffer.append(" "+dbName+" >");
            buffer.append(sqlFile);
            System.out.println(buffer.toString());
            System.out.println("开始备份:"+dbName);
            String[] commands = { "/bin/sh", "-c", buffer.toString()};
            Runtime.getRuntime().exec(commands);
            System.out.println("备份成功!");
        }catch (Exception ex){
            ex.printStackTrace();
            System.out.println("备份异常");
        }
    }
	
}

部分异常和技巧

1.错误1040>1024

出现这种情况下的系统为Ubuntu16.04,mysql 报Packet for query is too large (1040 > 1024). You can change this value on the server by setting the max_allowed_packet’ variable.错误。

原因

查询数据库返回的数据包太大,超过了默认值。
登录mysql,在控制台输入一下命令查询默认的max_allowed_packet值,发现只有1024。
说明:有的时候即便修改成功了,过一段时间还是会变回1024,原因是服务器内存不够。

show VARIABLES like '%max_allowed_packet%';
修改默认最大允许包大小
方式一:命令方式

(1).在mysql控制台下输入以下命令,设置max_allowed_packet为20M

set global max_allowed_packet = 20*1024*1024;

(2).退出mysql,重启mysql服务,再登录myql中查询max_allowed_packet是否修改成功

show VARIABLES like '%max_allowed_packet%';
方式二:修改配置文件my.cnf方式

(1).mysql控制台下输入以下命令,编辑my.cnf

sudo vi  /etc/mysql/my.cnf

(2).在[mysqId]下面添加

max_allowed_packet = 20M

退出编辑模式,重启mysql。

2.去除数据中的换行符
描述

MySQL中去除字段中的回车符和换行符。
从Excel或者其他文本中复制数据到MySql,在每行的结尾都会多出来一个换行符。

解决

执行SQL语句:

UPDATE  表明 SET  最后一列字段名 = REPLACE(REPLACE(最后一列字段名, CHAR(10), ''), CHAR(13), '');  

利用replace()函数将换行符【char(10)】和回车符【char(13)】替换为空串。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lootaa

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值