Ubuntu镜像下安装-MySQL

2 篇文章 0 订阅
2 篇文章 0 订阅

安装MySQL

一、更新apt-get

apt-get update

二、安装mysql

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

三、打开mysqld.cnf 找到 bind-address = 127.0.0.1 改为 0.0.0.0,可供所有ip访问

vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改    bind-address = 0.0.0.0

四、重启mysql服务

service mysql restart

五、进入mysql

mysql -uroot -p
password:

六、远程连接授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxx' WITH GRANT OPTION;
FLUSH PRIVILEGES;

注意:IDENTIFIED BY 'xxx'      xxx是远程连接的密码

卸载MySQL

删除mysql的数据文件

sudo rm /var/lib/mysql/ -R

删除mysql的配置文件

sudo rm /etc/mysql/ -R

自动卸载mysql 包括server 和 client

sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor

查看mysql依赖,如果有的话 继续使用 sudo apt-get remove 删除依赖

例如:sudo apt-get remove dbconfig-mysql
dpkg --list|grep mysql  # 查看依赖

Nvaicat 连接MySQL

点击连接—> mysql —> 常规
连接名: 任意名字
主机:localhost
端口:3306
用户名:root
密码:mysql密码

在点击—>SSH
使用SSH通道
打对钩
主机: 101.200.233.202
端口: 22
用户名 阿里云用户名
密码: 阿里云密码

点击测试连接,会显示连接成功, 然后点击确定 在左侧列表栏 双击 连接名 进行连接

Python远程连接Mysql

下载pymysql、mysql-connector-python

import pymysql
# aliyun
conn = pymysql.connect(
    host='0.0.0.0',   # 需要连接的ip地址
    port=3306,        # 端口
    user='root',      # 用户名
    password='***',   # 下载MySQL创建的密码
    database='database'  # 数据库名称
)
cursor = conn.cursor()

sq = "SELECT * FROM table"
cursor.execute(sq)
sql_value = cursor.fetchall()  # 列出所有的信息

-------------------------------------------------------------------------
sq = "UPDATE table SET 字段=value"
conn.commit()  #提交事务
cursor.close()
conn.close()

问题

一、使用group by 进行分组查询时,提示异常: SELECT list is not in GROUP BY clause and contains nonaggregated column ‘XXX’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode =only_full_group_by

解决方式

1.通过sql的方式更改sql_mode(当前生效,重启mysql后失效)
进入mysql客户端,执行以下命令:
select @@GLOBAL.sql_model;
在这里插入图片描述发现存在ONLY_FULL_GROUP_BY, 执行以下设置即可:
set@@sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;

2.通过mysql配置my.cnf更改sql_mode(一劳永逸)
找到服务器mysql对应的my.cnf配置文件,例如这里我的配置文件在/etc/my.cnf
vim /etc/mysql/mysql.conf.d/mysqld.cnf
更改/加入 sql_mode配置:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
保存,退出,并重启mysql: service mysql restart

重新查看sql_mode, 已经放开了ONLY_FULL_GROUP_BY设定

Fighter_ma: 弱小和无知不是生存的障碍,傲慢才是~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值