Centos7系统mysql迁移数据库位置及各种报错

操作系统是centos 7.9.2009。之前mysql/data在系统盘,现在空间不太够,需要迁移到自己的目录下。在操作过程中,发现mysql的配置似乎不是很完善,就有很多需要自己连接、修改的地方

迁移数据库位置

先停止mysql服务

mysql.server stop

修改/etc/my.cnf文件,主要是设置这几个路径

datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/gt-centos7-9-desktop-v2-6-60gb-25m.novalocal.err
pid-file=/usr/local/mysql/data/gt-centos7-9-desktop-v2-6-60gb-25m.novalocal.pid

注意除了datadir,其它都是文件,不是文件夹

datadir=/home/centos/model/mysql/data
socket=/home/centos/model/mysql/mysql.sock
log-error=/home/centos/model/mysql/mysqld.log
pid-file=/home/centos/model/mysql/mysqld.pid

设置为自己的路径。需要初始化一下,再启动mysql即可

mysqld --initialize --datadir /home/centos/model/mysql/data
mysql.server start

登录报错Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

/etc/my.cnf文件中的mysql.sock软连接到/tmp

ln -s /home/centos/model/mysql/mysql.sock /tmp

登录报错Access denied for user ‘centos’@‘localhost’ (using password: YES)

密码没错,但就是不知道为啥【捂脸】
由于服务器只有我一个人用,所以/etc/my.cnf里直接设置为不需要密码登录,在文件头部添加一行

skip-grant-tables

然后直接mysql就能用centos用户登录

导入报错ERROR 1148 (42000): The used command is not allowed with this MySQL version

load data local infile '/home/centos/model/PSCN/output/min_dist/result/cargo_voyage_port_2018.csv' into table min_result
fields terminated by ',' 
lines terminated by '\n' 
ignore 1 lines ( origin,destination,lon_o,lat_o,lon_d,lat_d,port_o,port_d);

似乎是最新的mysql不允许本地加载数据了。
/etc/my.cnf添加local-infile = 1
重启一下
登录时使用mysql --local-infile=1

报错Can’t connect to MySQL server on localhost

写了一个python脚本,欲将pandas.DataFrame导入sql中。参考博客

import pandas as pd
from sqlalchemy import create_engine

data = pd.read_csv('cargo_voyage_port_2018.csv')
engine = create_engine("mysql+pymysql://centos:Y1W2@localhost:3306/pscn?charset=utf8")
data.to_sql("min_result", engine, schema="pscn", if_exists='replace', index=True,
            chunksize=None, dtype=None)

但是报错Can't connect to MySQL server on localhost

netstat -tulpen

发现3306端口没有被监听。看了一些博客,原因各不相同。
对于我的情况,就是云服务器的3306端口没有被打开,打开之后重启一下mysql服务就好了

执行python脚本报错ImportError: libssl.so.1.1: cannot open shared object file: No such file or directory

原因是openssl版本过低,全程按照这篇博客操作

执行python脚本报错ImportError: libffi.so.7: cannot open shared object file: No such file or directory

原因是缺少了libffi.so.7,全程按照这篇博客操作

你可能感兴趣的:(mysql,linux,mysql,数据库,服务器)