码迷,mamicode.com
首页 > 数据库 > 详细

mysql连接错误解决

时间:2018-05-13 12:07:44      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:env   l数据库   现在   结果   col   创建   track   repr   /usr   

 技术分享图片

  情况一:

  错误:ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘

  mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的‘‘@‘localhost‘可以看出来。

  解决方法:参考

  1.关闭mysql
     [root@vultr ~]# service mysqld stop
  2.屏蔽权限
         [root@vultr ~]# mysqld_safe --skip-grant-table
        屏幕出现: Starting demo from .....
  3.新开起一个终端输入
             [root@vultr ~]# mysql -u root mysql
             mysql> delete from user where USER=‘‘;
             mysql> FLUSH PRIVILEGES;  // 一定要写入,否则如果关闭先前的终端,又会出现原来的错误
             mysql> \q

  情况二:

  我是想通过flask_sqlalchemy来删除mysql里的一个表,但是flask_sqlalchemy只有 db.drop_all()

  现在找到一种方法可以使用flask_sqlalchemy和pymysql来进行远程操作 

  直接使用pymysql来进行删除表操作:

# -*- coding:utf-8 -*- 
#!/usr/bin/env python
# @Author  : tianbao
# @Contact : gmu1592618@gmail.com
# @Time    : 2018/5/13 9:55
# @File    : pymysql_del_preview.py
# @Software: PyCharm
import pymysql

connect = pymysql.connect(  # 连接数据库服务器
    user="root",
    password="root",
    host="205.266.87.91",
    port=3306,
    db="movie",
    charset="utf8"
)
conn = connect.cursor()        #创建操作游标

conn.execute("SELECT * FROM user")    #选择查看自带的user这个表  (若要查看自己的数据库中的表先use XX再查看)
rows = conn.fetchall()                #fetchall(): 接收全部的返回结果行,若没有则返回的是表的内容个数 int型
for i in rows:
    print(i)

conn.execute("drop table preview")

conn.close()           #   关闭游标连接
connect.close()        #   关闭数据库服务器连接 释放内存

 

  通过flask_sqlalchemy 再生成原来的表

# -*- coding:utf-8 -*- 
#!/usr/bin/env python
# @Author  : tianbao
# @Contact : gmu1592618@gmail.com
# @Time    : 2018/5/13 9:34
# @File    : flask_sqlalchemy_create_preview.py
# @Software: PyCharm
from flask import Flask,render_template
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

app = Flask(__name__)
app.config[SQLALCHEMY_DATABASE_URI] = "mysql+pymysql://root:root@205.266.87.91:3306/movie"
app.config[SQLALCHEMY_TRACK_MODIFICATIONS] = True
app.config[SECRET_KEY] = "HelloWorld"

db = SQLAlchemy(app)

# 上映预告
class Preview(db.Model):
    __tablename__ = preview
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(255),unique=True)
    logo = db.Column(db.String(255),unique=True) # 封面
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)

    def __repr__(self):
        return <Preview %s>%self.title

if __name__ == __main__:
    db.create_all()
    # db.drop_all()
    # role = Role(
    #     name=‘超级管理员‘,
    #     auths=‘‘
    # )
    # from werkzeug.security import generate_password_hash
    # admin = Admin(
    #     name=‘imoocmovie1‘,
    #     pwd=generate_password_hash(‘imoocmovie1‘),
    #     is_super=0,
    #     roleid=1,
    # )
    # db.session.add(admin)
    # db.session.commit()
    # pass

 

mysql连接错误解决

标签:env   l数据库   现在   结果   col   创建   track   repr   /usr   

原文地址:https://www.cnblogs.com/guotianbao/p/9031406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!