1. 程式人生 > >mysql連接錯誤解決

mysql連接錯誤解決

use 原來 存在 找到 mooc ... ESS lose local

技術分享圖片

  情況一:

  錯誤: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 : [email protected]
# @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 : [email protected]
# @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:[email protected]: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連接錯誤解決