【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 *****