安装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: 弱小和无知不是生存的障碍,傲慢才是~