【MySQL】MySQL 常用命令 - 服务管理

Posted by 西维蜀黍 on 2018-02-23, Last Modified on 2023-09-28

0 启动 MySQL 服务

启动 MySQL 服务:

$ mysql.server start

# Or
$ /usr/local/mysql/bin/mysql

# Or
$ sudo /usr/local/mysql/support-files/mysql.server start

停止与重启 MySQL 服务:

# stop
$ mysql.server stop

# restart
$ mysql.server restart

配置文件

MySQL 配置文件默认路径:/usr/local/mysql/support-files/,也可以通过 mysql --verbose --help | grep my.cnf 来查找。

1 连接 MySQL

$ mysql -h <主机地址> -u <用户名> -p <用户密码>

使用无密码的 root 账号登录:

$ mysql -uroot

2 密码管理

刚刚安装好的 Mysql(默认情况),包含一个密码为空的 root 账号,和一个匿名账号。

删除匿名账号

delete from mysql.User where User=""; 

MySql 的用户管理是通过 User 表来实现的,添加新用户常用的方法有两个:

  • 在 User 表插入相应的数据行,同时设置相应的权限
  • 通过 GRANT 命令创建具有某种权限的用户

修改用户密码

use mysql;
update user set password=PASSWORD(123456) where User='root';
flush privileges;	

# 方法2
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 方法3
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

2 端口与连接管理

端口管理

查看 MySQL 当前端口号

  • mysql -u root -p 登录 MySQL

  • show global variables like 'port'; 查看当前使用端口号

    mysql> show global variables like 'port';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | port          | 3306  |
    +---------------+-------+
    1 row in set (0.01 sec)
    

修改 MySQL 端口号

  • Preference 中设置 MySQL 配置文件路径

  • 修改 MySQL 配置文件 my.cnf,用 port 指定端口

    # Default Homebrew MySQL server config
    [mysqld]
    # Only allow connections from localhost
    bind-address = 192.168.1.3
    port=8000
    
  • 重启 MySQLsudo /usr/local/mysql/support-files/mysql.server restart

连接管理

允许 MySQL 被外部连接访问

//登录数据库
mysql -u root -p

use mysql;
select user,host from user;
update user set host='%' where user='root';
flush privileges;

// 或者
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
flush privileges;

sudo netstat -an | grep 3306

查看当前 MySQL 连接

$ sudo netstat -an | grep 3307

3 数据导出

备份数据库

备份数据库结构和数据到一个 SQL 文件。

mysqldump -u <用户名> -ps <数据库名> > <导出的.sql>

只导出数据库结构(schema),不导出数据

mysqldump -u <用户名> -p -d <数据库名> > <导出的.sql>

4 数据导入

导入数据

mysqldump -u <用户名> -p <数据库名> < <导出的.sql>

使用 mysqlimport 导入数据

mysqlimport 客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。mysqlimport 的大多数选项直接对应 LOAD DATA INFILE 子句。

从文件 dump.txt 中将数据导入到 mytbl 数据表中,可以使用以下命令:

$ mysqlimport -u root -p --local mytbl dump.txt
password *****