MySQL:常见使用难题

内容

 

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地图