背景:作python項目的時候須要使用pycharm鏈接mysql數據庫,在CnetOS7版本中mysql換了個名字叫作mariadbpython
安裝命令mysql
yum -y install mariadb mariadb-server
設置密碼、修改密碼sql
mysqladmin -u root password '123'
mysqladmin -uroot -p"123" password "456"
忘記密碼數據庫
vim /etc/my.cnf #mysql主配置文件
[mysqld]下添加 skip-grant-table
保存退出並重啓服務
systemctl restart mariadb
mysql #進入數據庫修改密碼
MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost"; MariaDB [(none)]> flush privileges;
設置開機啓動vim
systemctl enable mariadb
建立數據庫和數據庫用戶並賦權服務器
mysql>create database meiduo default charset=utf8; #建立名爲meiduo的庫ide
mysql>create user meiduo identified by 'meiduo'; #建立名爲meiduo的用戶,密碼爲meiduothis
mysql>grant all on meiduo.* to 'meiduo'@'%'; #將meiduo數據庫的全部權限賦予meiduo用戶且不限制訪問iprest
mysql>flush privileges; #刷新MySQL的系統權限相關表code
如今能夠嘗試用pycharm的pymysql模塊鏈接Mysql數據庫
問題1:
解決辦法:
查看CentOS7系統的防火牆,默認是開啓的
使用systemctl stop firewalld命令關閉防火牆
再次在pycharm裏嘗試鏈接
問題2:
仍是鏈接不到,錯誤代碼是1130,pymysql.err.InternalError: (1130,'xxxxx' is not allowed to connect to this MariaDB server")
以後發現是權限問題。以下操做mysql庫,便可解決。登陸mysql後,更改 「mysql」 數據庫裏的 「user」 表裏的 「host」 項,從」localhost」改稱'%'。。
mysql -u root -p
mysql>use mysql; #選擇mysql庫
mysql>update user set host = '%' where user ='root' and host='localhost'; #修改host值(以通配符%的內容增長主機/IP地址)
mysql>flush privileges; #刷新MySQL的系統權限相關表
退出mysql後再次登陸須要使用mysql -h xxx.xxx.xxx.xxx -uroot -p才能登陸 (xxx.xxx.xxx.xxx爲遠程mysql服務器的ip地址)