MySQL:常见使用问题

内容

  • 1、Linux 上安装
    MySQL
  • 2、单机上安装多实例
  • 3、不知root密码情况下,修改root密码

 

1、Linux 上安装MySQL

安步骤:

1)解压 tar.gz文件

shell> tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

 

2)初始化默认数据库(mysql、performace_schema、sys、information_schema)

每当/home/bes/jinuo/mysql 目录下之构造如下:

/home/bes/jinuo/mysql
                     /mysql-5.7.9-glibc2.5-x86_64
                           /bin
                           /docs
                           /include
                           /lib
                           /man
                           /share
                           /support-files
                    /test
                         /ins1
                              /my-default.cnf

 

拷贝 support-files
目录及你想如果举行mysql实例的目下,并编辑如下:

[mysqld]
basedir=/home/bes/jinuo/mysql/mysql-5.7.9-linux-glibc2.5-x86_64
datadir=/home/bes/jinuo/mysql/test/ins1/datadir
port=36001
server_id=36001
socket=/home/bes/jinuo/mysql/test/ins1/mysql.sock
log-error=/home/bes/jinuo/mysql/test/mysqld.log
explicit_defaults_for_timestamp=true
character-set-server=utf8
collation-server=utf8_general_ci
skip-host-cache
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

接下来实施如下命令初始化:

普通用户可以直接实施如下命令:

shell> bin/mysql_install_db    # Before MySQL 5.7.6
shell> bin/mysqld --initialize   # MySQL 5.7.6 and up

 如果是操作每户的root用户创建mysql实例,创建实例时,需要指定为哪个用户创建的实例。

也就是说,如果你是一个普通用户 hello, 你得用上面 的下令直接
创建和谐之实例。

使只要为root用户被你创造实例,需要以上头命令后长 –user=hello 参数。

 

root用户:
shell>mysqld --defaults-file=/your/mysql/cnf/path --initialize-insecure --user=username

普通用户: 
shell>mysqld --defaults-file=/your/mysql/cnf/path --initialize-insecure

 

当初始化时,会为mysql root用户
创建一个临时密码。临时密码的职位好这么找到:

               

MySQL 5.6.x :

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
Also, the account for the anonymous user has been removed.

MySQL 5.7.x :

如果初始化时使用的是  --initialize:
# tail -n1 /home/bes/jinuo/mysql/test/ins1/mysqld.log
2016-12-11T07:47:58.199154Z 1 [Note] A temporary password is generated for root@localhost: wzgds/:Kf2,g

如果

初始化时使用的是  --initialize-insecure:

  # tail -n1 /var/log/mysql/error.log
  2016-12-11T07:51:28.506142Z 1 [Warning] root@localhost is created
with an empty password ! Please consider switching off the –initialize-insecure option

 所以,如果是5.7之上的版,建议使用
 –initialize-insecure方式来创造实例。这样即便足以一直利用mysqladmin来窜root密码了。参见4)。

 

 

3)启动数据库

启动MySQL Server:

shelll> /home/bes/jinuo/mysql/mysql-5.7.9-linux-glibc2.5-x86_64/bin/mysqld --defaults-file=/home/bes/jinuo/mysql/test/ins1/my-default.cnf &

 

4)知道密码情况下,修改密码

mysqladmin
提供了一如既往拟mysql的田间管理命令,其中起一个是password命令,用于修改密码的。使用mysqladmin
来改密码的前提是若懂得密码,因为它们里面是事先下现有登录到mysql
server,然后修改密码。

足一直利用mysqladmin命令来窜密码。例如修改root密码,由设置后的
空密码修改也 12345678

mysqladmin -u root --socket=/home/bes/mysql/mysql.sock password 12345678

假设在运过程中,想使转换密码由12345678变为123456:

mysqladmin -u root -p 12345678 --socket=/home/bes/mysql/mysql.sock password 123456

修改外用户的密码,是平 的方法。

 

5)为root授权限

 

mysql> grant all on *.* to 'root'@'%' identified by 'yourRootPassword';

 

2、单机多实例安装

如在同高机器上,要装多个mysql实例,只需要用重执行
1中之2)3)4)5)就可了。

 

 

3、 不知root密码情况下,修改root密码、授权

欠措施适用于,有root密码,但是未了解root 密码情况下。

 

       a: 停止 MySQL Server

       b: 绕过授权检查方式启动MySQL Server

            

shell> /home/bes/jinuo/mysql/mysql-5.7.9-linux-glibc2.5-x86_64/bin/mysqld --defaults-file=/home/bes/jinuo/mysql/test/ins1/my-default.cnf --skip-grant-tables &

       c: root用户登录到mysql server上,并切换至mysql 库

  

shell> /home/bes/jinuo/mysql/mysql-5.7.9-linux-glibc2.5-x86_64/bin/mysql --socket=/home/bes/jinuo/mysql/test/ins1/mysql.sock -uroot -p

mysql> use mysql;

 

       d: 修改root 用户之密码: 

    

mysql> update mysql.user set authentication_string = password('mypassword') where user = 'root';
mysql> flush privileges;
mysql> quit;

        e: 停止mysql server,正常启动。

        正常启动之艺术在前边 3)中已说罢。

        f: root 登录后,进行授权调整:

       

shell> /home/bes/jinuo/mysql/mysql-5.7.9-linux-glibc2.5-x86_64/bin/mysql --socket=/home/bes/jinuo/mysql/test/ins1/mysql.sock -uroot -p
Enter Password

mysql> grant all on *.* to 'root'@'%' identified by 'yourRootPassword';

 

 

 

 

 

     

网站地图xml地图