打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ubuntu 16.04下mysql 5.7.19安装配置及python和c++连接配置
1、安装
sudo apt-get install mysql-server  mysql-client 安装过程中需要配置root的密码。
通过service mysql status 可以查看已经安装好的mysql的运行情况。
2、修改默认的存储文件和其他相关配置
配置文件:/etc/mysql/my.cnf
内容:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
从上面看来,所以实际需要修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,需要注意的是可不动sock文件,否则很容易报错。
A、添加client,不然sock报错
[client]
default-character-set=utf8
socket      = /var/run/mysqld/mysqld.sock
B、配置utf8编码
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
C、修改datadir = (your data path)
原有的东西拷贝过去:cp -arf  /var/lib/mysql  (your data path)/mysql
授权:sudo chown -R mysql.mysql mysql
D、注释掉配置文件里面的bind-address = 127.0.0.1,开启远程访问
E、需要selinux设置为disable和apparmor相关路径修改,二者语mysql有限制
selinux 设置为disable,可以通过getenforce查看,通过setenforce 0 直接设置。若命令不存在安装一下包 
apparmor,在 /etc/apparmor.d/usr.sbin.mysqld 这个文件中,规定了mysql使用的数据文件路径权限 
 /var/lib/mysql/ r,/var/lib/mysql/** rwk, 
其中/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限  照上面那两条,注释掉上面的,增加下面这两条就可以了 
(your data path)/mysql/ r, 
(your data path)/mysql/** rwk, 
重启: sudo service apparmor restart

3、sudo /etc/init.d/mysql restart 启动mysql
通过sudo service mysql start/stop来启动和停止mysql,确定没问题
通过/var/log/mysql/error.log来定位错误
如果遇到问题了实在解决不了可以sudo apt-get autoremove mysql* --purge,删除了在重新装

4、grant all on 数据库名.* to '用户名' identified by '密码';
给用户授予某数据库的访问权限,其中db事先建立好。注意text字段有strict mode模式,这种模式下不能设置默认值为‘’

5、python连接db
从git下载包:https://github.com/PyMySQL/PyMySQL
下载后解压,然后通过python setup.py install --user 安装到当前用户目录下。

# -*- coding:utf-8 -*-import pymysql#创建连接con = pymysql.connect(host='***', port=3306, user='***', passwd='***', db='***', charset='utf8')# 创建游标cursor = con.cursor()
# 执行SQL,并返回收影响行数effect_row = cursor.execute("select * from table")
#获取首行的结果row_1 = cursor.fetchone()
# 获取剩余结果前n行数据row_2 = cursor.fetchmany(3)# 获取剩余结果所有数据row_3 = cursor.fetchall()
con.commit()cursor.close()
con.close()

6、c++连接db
#include <iostream>
#include <mysql/mysql.h>
#include <stdio.h>
#include <string.h>
using namespace std;

int main(int argc, char* argv[])
{
    //准备mysql的访问结构
    MYSQL mysql;
    mysql_init( &mysql );
    mysql_real_connect(
        &mysql,
        "***",   //要访问数据库的IP地址
        "***",         //用户名
        "***",         //密码
        "***",         //要访问的数据库
        3306,           //该数据库的端口
        NULL,           //一般为NULL
        0           //一般为0
    );

  //插入
  string sql = "insert into table(字段1,字段二) values ('***','***')";
  //执行sql语句
  mysql_query(&mysql,"SET NAMES utf8");  //防止中文乱码
  mysql_query( &mysql, sql.c_str() );
  //关闭数据库连接
  mysql_close( &mysql );
  return 0;
}


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)
Ubuntu 22.04安装、配置和删除MySQL 8
Python3连接MySQL8.0数据库,难不?
mysql与python的交互
centos6.5使用yum安装mysql
python操作MySQL(增删改查)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服