设为首页 收藏本站
查看: 895|回复: 0

[经验分享] 13.1-13.3 设置更改root密码,连接MySQL,MySQL常用命令

[复制链接]

尚未签到

发表于 2018-10-6 06:49:17 | 显示全部楼层 |阅读模式
  13.1 设置更改root密码
  大纲
DSC0000.jpg

  准备工作:
  1 启动mysql服务
  [root@AliKvn ~]# /etc/init.d/mysqld start
  Starting MySQL.                                            [  OK  ]
  2 设置MySQL环境变量
  因为#mysql命令需要使用绝对路径/ /usr/local/mysql/bin/mysql,这样太麻烦了,
  所以需要更改环境变量PATH,增加mysql绝对路径。
  # ls /usr/local/mysql/bin/mysql
  /usr/local/mysql/bin/mysql
  2.1 添加环境变量
  [root@AliKvn ~]# export PATH=$PATH:/usr/local/mysql/bin/
  测试使用mysql命令
DSC0001.jpg

  2.2 使命令用久生效 把命令放在profile的最后面
  [root@AliKvn ~]# vim /etc/profile
  unset -f pathmunge
  export PATH=$PATH:/usr/local/mysql/bin/
  ~
  ~
  source /etc/profile 使其用久生效。
  [root@AliKvn ~]# source /etc/profile
  3 进入mysql
  -u指定用户,-p指定密码(如果无密码,直接回车进入)
  [root@AliKvn ~]# mysql -uroot -p
  mysql> quit
  Bye
  4 因为MySQL第一次进去是不需要密码的,比较危险,所以需要设置密码
  [root@AliKvn ~]# mysqladmin -uroot password 'aminglinux.1'
  Warning: Using a password on the command line interface can be insecure.
  测试指定密码进入
  [root@AliKvn ~]# mysql -uroot -p
  4.1 更改密码
  [root@AliKvn ~]# mysqladmin -uroot -p'aminglinux.1' password 'aminglinux.2'
  Warning: Using a password on the command line interface can be insecure.
  5 密码重置(在没有root密码的时候修改root密码)
  在[mysqld]增加skip-grant,此配置的意义就是忽略授权,加入配置后,不需要登录密码即可进入MySQL
  #vi /etc/my.cnf
  [root@AliKvn ~]# vim /etc/my.cnf
  [mysqld]
  skip-grant
  datadir=/data/mysql
  socket=/tmp/mysql.sock
  5.1 配置完成后,重启服务使其生效。
  [root@AliKvn ~]# /etc/init.d/mysqld restart
  Shutting down MySQL..                                      [  OK  ]
  Starting MySQL.                                            [  OK  ]
  5.2 测试
  [root@AliKvn ~]# mysql -uroot
  直接进入,无需任何认证。
  mysql>
  5.3 使用mysql库
  mysql> use mysql;
  Reading table information for completion of table and column names
  You can turn off this feature to get a quicker startup with -A
  Database changed
  5.4 进入密码表
  mysql> select password from user ;
  +-------------------------------------------+
  | password                                  |
  +-------------------------------------------+
  | *C2586DB1E5698A5F1DC57808497DA087CC1EF767 |
  |                                           |
  |                                           |
  |                                           |
  |                                           |
  |                                           |
  +-------------------------------------------+
  6 rows in set (0.01 sec)
  5.5 在密码表输入命令,更改密码
  mysql> update user set password=password('aminglinux') where user='root';
  Query OK, 4 rows affected (0.00 sec)
  Rows matched: 4  Changed: 4  Warnings: 0
  密码更新成功,quit退出mysql
  mysql> quit
  Bye
  
  6 修改完成后,需要把跳过验证参数(skip-grant)删除,不然会发生很大安全隐患。
  [root@AliKvn ~]# vim /etc/my.cnf
  [mysqld]
  datadir=/data/mysql
  socket=/tmp/mysql.sock
  修改后,重启服务
  [root@AliKvn ~]# /etc/init.d/mysqld restart
  Shutting down MySQL..                                      [  OK  ]
  Starting MySQL.                                            [  OK  ]
  6.1 用新密码测试登录MySQL
  [root@AliKvn ~]# mysql -uroot -paminglinux
  Warning: Using a password on the command line interface can be insecure.
  Welcome to the MySQL monitor.  Commands end with ; or \g.
  13.2 连接MySQL
  1 本地 ip:port连接
  [root@AliKvn ~]# mysql -uroot -paminglinux -h127.0.0.1 -P3306
DSC0002.jpg

  2 还可以利用socket去连接。MySQL的socket在/tmp/mysql.sock
  检查mysql.sock的监听状态
  [root@AliKvn ~]# !ps
  ps aux |grep mysql.sock
DSC0003.jpg

  socket连接
  [root@AliKvn ~]# mysql -uroot -paminglinux -S/tmp/mysql.sock
  这种情况只适合用在本机上(这种方法和第一种是一样的,也是默认的连接方法)
  3 连接MySQL顺便操作一些命令
  [root@AliKvn ~]# mysql -uroot -paminglinux -e "show databases"
  Warning: Using a password on the command line interface can be insecure.
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | mysql              |
  | performance_schema |
  | test               |
  +--------------------+
  进入MySQL,然后执行#show databases命令。
  这种情况适用在shell脚本,例如监听MySQL的连接数。
  13.3 MySQL常用命令
  慎记,MySQL里的命令在Linux上是执行不到的。但是通过mysql -e "命令" 可以指定执行。
  在MySQL里面执行命令,以 ; 结束。
  连接MySQL
  [root@AliKvn ~]# mysql -uroot -paminglinux
  查询库 show databases;
  切换库 use mysql;
  查看库里的表 show tables;
  查看整张表的内容 select * from tb_name;
  查看表里的字段 desc tb_name;
  字段,表,库三者的关系,库是由表组成,表是有字段组成。
  操作:
  查看user字段,
  1 先切换库
  use mysql;
  mysql> use mysql;
  Reading table information for completion of table and column names
  You can turn off this feature to get a quicker startup with -A
  Database changed
  2 再查看user字段,
  mysql> desc user;
DSC0004.jpg

  查看建表语句 show create table tb_name\G;
DSC0005.jpg

  查看当前用户 select user();
  mysql> select user();
  +----------------+
  | user()         |
  +----------------+
  | root@localhost |
  +----------------+
  1 row in set (0.00 sec)
  当前用户是localhost,其实127.0.0.1连接进来也是localhost,因为127.0.0.1就是localhost.
  接下来试试用本机ip连接看看
  [root@AliKvn ~]# mysql -h172.18.171.157 -paminglinux
  mysql> select user();
  +-------------+
  | user()      |
  +-------------+
  | root@AliKvn |
  +-------------+
  1 row in set (0.00 sec)
  AliKvn是本机的主机名,而172.18.171.157被传解析了,所以AliKvn是被172.18.171.157解析出来的。
  MySQL的命令历史记录存在/root/.mysql_history
  查看方法 less .mysql_history
  查看当前使用的数据库 select databsase();
  mysql> select database();
  +------------+
  | database() |
  +------------+
  | NULL       |
  +------------+
  1 row in set (0.00 sec)
  NULL为空,例如切换到mysql库下,这里不会显示空。
  mysql> use mysql
  Database changed
  mysql>  select database();
  +------------+
  | database() |
  +------------+
  | mysql      |
  +------------+
  1 row in set (0.00 sec)
  创建库 create database db1;
  mysql> create database db1;
  Query OK, 1 row affected (0.00 sec)
  mysql> show databases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | db1                |
  | mysql              |
  | performance_schema |
  | test               |
  +--------------------+
  5 rows in set (0.00 sec)
  创建表 create table t1(`id` int(4), `name` char(40));
  1 先切换db1库
  mysql> use db1;
  Database changed
  2 再创建表t1
  mysql> create table t1(`id` int(4), `name` char(40));
  Query OK, 0 rows affected (0.02 sec)
  3 查看创建的表
  mysql> show create table t1\G
  *************************** 1. row ***************************
  Table: t1
  Create Table: CREATE TABLE `t1` (
  `id` int(4) DEFAULT NULL,
  `name` char(40) DEFAULT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1
  1 row in set (0.00 sec)
  定义utf8格式
  操作:
  1 删除表
  drop table t1;
  mysql> drop table t1;
  Query OK, 0 rows affected (0.01 sec)
  2 定义utf8格式
  mysql> create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  Query OK, 0 rows affected (0.02 sec)
  查看刚刚创建t1的表(utf8)
  mysql> show create table t1\G;
  *************************** 1. row ***************************
  Table: t1
  Create Table: CREATE TABLE `t1` (
  `id` int(4) DEFAULT NULL,
  `name` char(40) DEFAULT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8
  1 row in set (0.00 sec)
  ERROR:
  No query specified
  查看当前数据库版本 select version();
  mysql> select version();
  +-----------+
  | version() |
  +-----------+
  | 5.6.35    |
  +-----------+
  1 row in set (0.00 sec)
  查看数据库状态 show status;
  将常用的数据列出来
  查看各参数 show variables;
  mysql> show variables;
DSC0006.jpg

  查看指定参数,%表示通配符
  mysql> show variables like 'max_connect%';
  +--------------------+-------+
  | Variable_name      | Value |
  +--------------------+-------+
  | max_connect_errors | 100   |
  | max_connections    | 151   |
  +--------------------+-------+
  2 rows in set (0.00 sec)
  修改参数 set global max_connect_errors=1000;(如果想永久生效,需要修改/etc/my.conf,添加相关配置参数)
  mysql> set global max_connect_errors=1000;
  Query OK, 0 rows affected (0.00 sec)
  mysql> show variables like 'max_connect%';
  +--------------------+-------+
  | Variable_name      | Value |
  +--------------------+-------+
  | max_connect_errors | 1000  |
  | max_connections    | 151   |
  +--------------------+-------+
  2 rows in set (0.00 sec)
  max_connect_errors 1000  数值变成了1000
  查看队列 两者体验在info上,full的比较完整。(查看队列命令用得最多,需要熟练使用)
  mysql> show processlist;
  +----+------+--------------+------+---------+------+-------+------------------+

  |>  +----+------+--------------+------+---------+------+-------+------------------+
  | 13 | root | AliKvn:56928 | NULL | Query   |    0 | init  | show processlist |
  +----+------+--------------+------+---------+------+-------+------------------+
  1 row in set (0.00 sec)
  这个比较完整查看队列。
  show full processlist;
  mysql> show full processlist;
  +----+------+--------------+------+---------+------+-------+-----------------------+

  |>  +----+------+--------------+------+---------+------+-------+-----------------------+
  | 13 | root | AliKvn:56928 | NULL | Query   |    0 | init  | show full processlist |
  +----+------+--------------+------+---------+------+-------+-----------------------+
  1 row in set (0.00 sec)


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-612906-1-1.html 上篇帖子: mysql5.7用户管理及权限分配 下篇帖子: mysql5.7源码安装数据库部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表