日常操作
修改密碼:mysqladmin -u root -p password 123 回車後輸入原來的密碼
查看創建表語句 show create table user;
查看某個表有多少字段 desc user;
查看一個表中有多少行 select count(*) from user;
查看一個表的前多少行 select * from user limit 2;
將一箇舊的表名命名成一個新的表名,alter table user rename users;
刪除一個表 drop table user;
將什麼權限,那個數據庫,那個表 授權用戶的連接地址 和密碼(遠程訪問授權)設置完成後需要 flush privileges; 命令刷新權限
grant all on test.* to root@'192.168.10.110' identified by '1';
mysql遠程登錄命令: mysql -h192.168.10.127 -uroot -p1
在mysql數據庫中修改用戶名密碼,user表,如下
update user set authentication_string=password('123'),user='wd' where host='192.168.10.110';
修改用戶名稱後,需要從新給用戶加權限
修改某個表的編碼格式:alter table user default character set utf8;
修改某個表的某個字段的編碼格式 且不爲空:
alter table info change value value varchar(10) character set utf8 not null;
數據庫備份:mysqldump -uroot -p test>/home/wd/projects/haha.sql 輸入密碼 備份完成
刪除數據庫:drop database test;
創建數據庫並指定編碼格式:create database test charset=utf8;
數據庫恢復:
方法一:創建數據庫test,退出執行,mysql -uroot -p test<haha.sql
方法二:進入mysql 創建數據庫test,use test; 然後source haha.sql; 執行語句
授權後遠端無法訪問解決辦法
1.檢查端口是否開發:netstat -an|grep 3306 如下圖則未打開其他地址連接
2.打開配置文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf
確定端口爲3306,或者其他,註釋掉bind-address 地址綁定
3.這一步可以不操作,查看mysql表user的權限,如下圖權限已經添加。可以將host修改爲%,則來自所有地址的root用戶都可以連接,很危險,不推薦。
4.重啓服務器。service mysql restart
查看3306端口連接狀態,如下圖連接已允許我上面grant授權的地址使用。
提示:如果使用Navicat等工具連接會報錯,但不用理會,它們默認掃描所有數據庫,但我只開放了test數據庫的授權,將錯誤插掉。以後登錄就不在提示了。
無法中文保存解決方法
查看數據庫支持編碼格式命令:show variables like '%char%';
1.打開文件vim /etc/mysql/mysql.conf.d/mysqld.cnf 修改參數[mysqld],在它的下面添加一條character-set-server=utf8,重啓服務再建數據庫就可以使用中文了。
或者設置
set character_set_server=utf8;
set character_set_database=utf8;
2.建表的時候在最後面添加 字符集選項 default charset=utf8
create table analysis(city varchar(20),companySize varchar(20),education varchar(20))default charset=utf8;
忘記密碼怎麼辦
關閉mysql:/etc/init.d/mysql stop
1.執行下面命令,跳過權限表
/usr/bin/mysqld_safe --user=mysql --skip-grant-tables &
如果不成功:執行這兩條命令,後執行上面這條命令
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
執行成功後直接執行 mysql 可以直接進入數據庫
用上文提到的修改mysql庫的用戶密碼方法修改密碼。
quit 退出後,懶的話就重啓電腦,不懶就用下面的方法殺死進程後重啓服務
查看進程命令: ps -ef |grep safe
殺死進程命令:kill -9 pid; pid爲上面查看到的進程id
重啓服務:/etc/init.d/mysql start