运维系列(8)-- "Host is not allowed to connect to this MySQL server"

我的另一篇博客链接:
云服务器部署Java web项目(JDK, Tomcat, MySQL)

##目录

文章目录

    • "Host is not allowed to connect to this MySQL server"
    • mysqld_safe A mysqld process already exists
    • 安装MySQL
    • 导入导出数据库
    • MySQL中查看数据库
    • 解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "

“Host is not allowed to connect to this MySQL server”

在MySQL host上按如下命令操作

mysql -u root -ppassword    //进入mysql控制台

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';    //这个命令执行错误时可略过

mysql>flush privileges;

mysql>select host, user from user; //检查‘%’ 是否插入到数据库中

mysql>quit

mysqld_safe A mysqld process already exists

mysqld_safe A mysqld process already exists

表示mysqld_safe进程存在,可以通过
ps -A|grep mysql 查看mysqld_safe进程ID
kill -9 xxxx            终结ID为xxxx的进程

安装MySQL

scripts/mysql_install_db --defaults-file=my.cnf  --user=user

bin/mysqld_safe --defaults-file=my.cnf &

netstat -an | grep 3306

导入导出数据库

linux下

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码

2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

注:/usr/local/mysql/bin/  --->  mysql的data目录


二、导入数据库
1、首先建空数据库
mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

MySQL中查看数据库

查看当前使用的数据库,可使用如下命令
mysql> select database(); #使用函数database()
mysql> show tables; #列头信息中可看出当前使用的db,格式为:Tables_in_[db_name]
mysql> status; #注意结果中的"Current database:"信息

查看系统中有哪些数据库,
mysql> show databases;
更换当前使用的数据库,
mysql> use db_name;

返回当前数据库下的所有表的名称
mysql> show tables;
或者直接用如下命令
mysql> show tables from db_name;

查看表结构,可使用如下命令
mysql> desc 表名;
mysql> describe 表名;
mysql> show columns from 表名;
mysql> show create table 表名;
或者,
mysql> use information_schema
mysql> select * from columns where table_name='表名';

15个 MySQL 菜鸟问题

问题1:你如何确定 MySQL 是否处于运行状态?
答案: Debian 上运行命令 service mysql status,在RedHat 上运行命令 service mysqld status。然后看看输出即可。

问题2:如何开启或停止 MySQL 服务?
答案:运行命令 service mysqld start 开启服务;运行命令 service mysqld stop 停止服务。

问题3:如何通过 Shell 登入 MySQL?
答案:运行命令 mysql -u root -p

问题4:如何列出所有数据库?
答案:运行命令 show databases;

问题5: 如何切换到某个数据库并在上面工作?
答案:运行命令 use database_name; 进入名为 database_name 的数据库。

问题6:如何列出某个数据库内所有表?
答案:在当前数据库运行命令 show tables;

问题7:如何获取表内所有 Field 对象的名称和类型?
答案:运行命令 describe table_name;

问题8:如何删除表?
答案:运行命令 drop table table_name;

问题9:如何删除数据库?
答案:运行命令 drop database database-name;

问题10:如何查看表内所有数据?
答案:运行命令 select * from table_name;

问题11:如何从表(比如 oc_users )中获取一个 field 对象(比如 uid)的所有数据?
答案:运行命令 select uid from oc_users;

问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’ 和 ‘engine’。名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。如何只列出 ‘createtime’ 和 ‘engine’ 这两列并且 engine 的值为 ‘MyIsam’?
答案:运行命令 select create_time, engine from xyz where engine = ”MyIsam”;

问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?
答案:运行命令 select * from xrt where name = “tecmint” and web_address = “tecmint.com”;

问题14:如何列出表 ‘xrt’ 内 name 域值不为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?
答案:运行命令 select * from xrt where name != "tecmint" and web_address = "tecmint.com";

问题15:如何知道表内行数?
答案:运行命令 select count(*) from table_name;

解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "

亲测有效,解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";

你可能感兴趣的:(运维系列(8)-- "Host is not allowed to connect to this MySQL server")