共計 3431 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章主要介紹“Mysql 數據庫應用常見的問題有哪些”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Mysql 數據庫應用常見的問題有哪些”文章能幫助大家解決問題。
一、安裝 mysql1、CentOS 系統
1.)安裝 mysql
下載并安裝 mysql 的 repo 源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安裝 mysql
$ sudo yum install -y mysql-server
2.)啟動 / 重啟 / 關閉服務
service mysqld start | restart | stop
2、alpine 系統 alpine 系統中安裝 mysql 實際是開源的 MariaDB,MariaDB 數據庫是 MySQL 的一個分支 / 衍生版,完全兼容 MySQL,并在擴展功能、存儲引擎以及一些新的功能改進方面都強過 MySQL,安裝參考
$ apk update
# 安裝數據庫及客戶端
$ apk add mysql mysql-client
# 初始化數據庫
$ mysql
_install_db --user=mysql --datadir=/var/lib/mysql
# 啟動服務
$ rc-service mariadb start # 若沒有 rc,安裝:apk add openrc
# 修改密碼
$ mysql
admin -u root password 新 root 密碼
# 加入開機啟動
$ rc-update add mariadb default
二、操作 mysql1、登錄數據庫默認初始化直接登錄
$ mysql
若提示失敗,說明有密碼,運行:
$ mysql
-uroot -p # 一次性登錄$ mysql
- u 用戶 - p 密碼
2、操作數據庫
# 查看所有數據庫
mysql show databases;
# 創建數據庫
mysql create database xxx charset=utf8;
# 刪除數據庫
mysql drop database xxx;
# 切換數據庫
mysql use mysql;
# 查看表
mysql show tables;
# 創建表
mysql create table xxx (
id int,
name varchar(20),
update_time datetime
# 刪除表
mysql drop table xxx;
# 顯示表結構
mysql desc xxx;
# 查詢指定 a,b 字段的記錄, 不知道用 * 代替
mysql select a,b form xxx;
# 插入記錄
mysql insert into xxx(id,user) values(1, wang ,now());
# 刪除記錄
mysql delete from xxx where name= wang
# 清屏命令
mysql system clear;
# 退出
mysql quit;
3、用戶管理
mysql 的 user 表用來存儲所有用戶權限,其中 host 字段表示指定 ip 用戶能使用,同名不同 host 的為兩個用戶,host 常見值如下:
localhost:只能服務器端上使用
192.168.4.%:指定 ip 段能用
%:通配符,表示所有 ip 用戶都能用,多用于遠程連接
下面新建 / 刪除用戶操作時,可通過 user@ host 指定,若不指定默認為 %
# 切換到 mysql 權限數據庫
mysql use mysql;
# 查看用戶及所屬的 host
mysql select user,host from user;
# 新建用戶并設置密碼
mysql create user 用戶名 identified by 密碼
# 上面不指定 host,默認 %,等同于:mysql create user 用戶名 @ % identified by 密碼
# 刪除用戶 (只刪除 host 為 % 的用戶)
mysql drop user 用戶名
# 查看用戶權限
mysql show grants for 用戶名
# 設置權限,并指定數據庫
mysql grant all privileges on xxxDB.* to 用戶名
# 修改密碼,注意密碼處不能直接 password= 新密碼
mysql update user set password=password(新密碼) where user= 用戶名
# 刷新權限表
mysql flush privileges;
4、批量操作
1.)sql 腳本批量執行
$ mysql
-uroot -p -Dxxx ./init.sql # xxx 為數據庫
2.)備份 / 恢復數據庫
$ mysql
dump --all-databases -h227.0.0.1 -u root -p ./backup/mysql-bak.sql$ mysql
dump --all-databases -h227.0.0.1 -u root -p ./backup/mysql-bak.sql
三、常見問題 1、root 密碼忘記怎么擦除?
$ mysql
–skip-grant-table
mysql use mysql;
mysql update user set password=password(新密碼) where user= root
mysql flush privileges;
mysql quit;
這里需要注意的是每句命令需要用分號“;”結尾, 執行完以上得操作,root 的密碼就被清空。2、空用戶錯誤
ERROR 1044 (42000): Access denied for user @ localhost to database mysql 錯誤:
原因:
mysql 數據庫的 user 表里,存在用戶名為空的賬戶即匿名賬戶,導致登錄的時候雖然用的是 root,但實際是匿名登錄的。
處理方案:
# 1. 關閉 mysql $ service mysqld stop # 2. 屏蔽權限$ mysql
d_safe --skip-grant-table # 屏幕出現: Starting demo from ..... # 3. 新開起一個終端輸入$ mysql
-uroot mysql mysql update user set password=password(新密碼) where user= root mysql flush privileges; mysql quit;
3、服務上 root 能用,遠程不能登錄
$ mysql
-uroot -p
mysql use mysql;
# 先查看 user 表 host 字段,有無通配符 %,若有直接運行 flush privileges;
mysql select host from user where user= root
mysql grant all privileges *.* to root @ % identified by root 密碼
mysql flush privileges;
mysql quit;
4、遠程連接提示 caching_sha2_password 錯誤從 mysql5.7 版本之后,默認采用了 caching_sha2_password 驗證方式
mysql use mysql;
mysql alter user root @ % identified with mysql_native_password by root 密碼
5、mysql 修改默認數據存放
$ mysql
admin -u root -p variables | grep datadir # 查看 mysql 數據庫存放目錄
$ service mysqld stop
$ mv /var/lib/mysql / 路徑 # 移動數據庫文件
$ vi /etc/my.cnf
# 修改 datadir 和 socket 兩個字段,并添加以下:[mysql]
socket=/ 路徑 /mysql.sock
$ service mysqld start
關于“Mysql 數據庫應用常見的問題有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。