linux centos mysql5.7安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33127597/article/details/89358686

linux centos mysql5.7安装

1.添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组

 ①groupadd mysql

 ②useradd -r -g mysql mysql

 * useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

 * useradd -g参数表示把mysql用户添加到mysql用户组中。

2.将二进制文件解压到指定的安装目录,我们这里指定为 /usr/local/dev/,也可以是通用的/usr/local

 ①解压二进制文件, tar -zxvf mysql-5.7.25-el7-x86_64.tar.gz  -C /usr/local/dev/ 

 ②mv mysql-5.7.25-el7-x86_64.tar.gz mysql   更改mysql目录名称

 ③cd mysql 进入mysql文件夹,也就是mysql所在的目录,

 ④更改mysql目录所属的组和用户。更改权限

  chown -R mysql .

  chgrp -R mysql .

3.初始化 MySQL 配置表

mysql5.7之前版本初始化配置表命令:

 script/mysql_install_db --user=mysql --basedir=/Ultrapower/test/mysql --datadir=/Ultrapower/test/mysql/data/

 --user  启动mysql的用户

 --basedir  mysql安装目录

 --datadir  mysql数据仓库目录
  ①初始化表配置正确执行步骤:
[root@iZuf68yf0avh1vujs5wxmjZ mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/dev/mysql/ --datadir=/usr/local/dev/mysql/data
2019-04-17T06:36:18.249349Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-17T06:36:19.872809Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-17T06:36:19.992575Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-17T06:36:20.168596Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1c604368-60db-11e9-9a25-00163e08db58.
2019-04-17T06:36:20.361332Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-17T06:36:20.361910Z 1 [Note] A temporary password is generated for root@localhost: Gu/ckhuMm4u3

注意最后一行,这也是和之有版本不同的地方,它给了root一个初始密码,后面要登录的时候要用到这个密码。

②将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。
[root@rhel5-32 mysql]# chown -R root .
[root@rhel5-32 mysql]# chown -R mysql data


③mysql5.7配置文件需要修改my.cnf关键配置 复制下面这段文字 打开 /etc/my.cnf
[mysqld]

#设置3306端口

port = 3306 

# 设置mysql的安装目录

basedir=/usr/local/mysql-5.7.25-el7-x86_64


# 设置mysql数据库的数据的存放目录

datadir=/usr/local/mysql-5.7.25-el7-x86_64/data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

bind-address= 0.0.0.0
wait_timeout=2073600
interactive_timeout=2073600
[client]
socket=/tmp/mysql.sock



4. 将mysqld服务加入开机自启动项

将{mysql}/ support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,

否则就只能使用{mysql}/bin/mysqld_safe &命令来启动服务

还需要把mysql.server中basedir的相关路径,改为自定义的路径,默认路径是/usr/local/mysql

#cp mysql.server /etc/init.d/mysql
#chmod +x /etc/init.d/mysql

把mysql注册为开机启动的服务

#chkconfig --add mysql

查看是否添加成功

[root@rhel5-32 mysql]# chkconfig --list mysql
mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

5.mysql服务的开启和关闭

#/etc/init.d/mysql start   或者   service mysql start  或者  bin/mysqld_safe&
#/etc/init.d/mysql stop    或者   service mysql stop   或者  bin/mysqladmin -uroot -p

需要把mysqll加入到环境变量中,或者为mysql建立软链接

否则运行mysql命令会出现 -bash: mysql:command not found

不加环境变量,就要使用bin/mysql -uroot -p 或者bin/mysqladmin -uroot -p 命令来登录mysql服务

建立软链接:

ln -s /usr/local/dev/mysql/bin/mysql   /usr/bin/mysql

6.加入环境变量

PATH=$PATH:/usr/local/dev/mysql:/usr/local/dev/mysql/bin
export PATH

7.登录mysql服务

执行:mysql -uroot -p生成的密码

连上后,在做任何操作前,mysql要求要改掉root的密码后才能进行操作。

8.启动mysql

[root@rhel5-32 mysql]# service mysql restart
如果报 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) 错误。
将/tmp设置mysql权限  执行 chown -R mysql:mysql tmp
先杀死mysql进程  在重新启动就可以service mysqld start

9. 修改密码 创建用户 授权

修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MSshms123!@#'; 

创建用户
create user 'user1'@'%' IDENTIFIED BY '123456';

create user 'test001'@'%' IDENTIFIED BY 'shms123';

授权

命令:
	GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
	privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
	databasename:数据库名
	tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

   grant all on *.* TO 'user1'@'%';

用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

刷新权限

FLUSH PRIVILEGES

猜你喜欢

转载自blog.csdn.net/qq_33127597/article/details/89358686