服务器部署mysql


1、参考:https://blog.csdn.net/qq_41606459/article/details/84550301

服务器安装部署mysql

1、官网下载地址:https://www.mysql.com/downloads/

 

2、将 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 上传到 /usr/local 目录下

 将 安装包进行解压:登录服务器,cd /usr/local/ 下执行:tar -xzf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 进行解压,

然后重命名:

  mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql     

此时解压完的文件名为 mysql

 这个时候达到的效果是/usr/local/mysql/..(一堆解压开的文件)

3、添加用户组和用户

#添加用户组

  groupadd mysql

#添加用户mysql 到用户组mysql

  useradd -g mysql mysql

4、安装

#在/usr/local/mysql目录下新建data文件夹,以后的数据库文件将放在这里

mkdir data

依次执行以下命令:

  chown -R mysql:mysql ./

#mysql_install_db 被废弃了,取而代之的是 mysqld –-initialize

  ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

#将mysql/目录下除了data/目录的所有文件,改回root用户所有
  [root@ mysql]# chown -R root .

#mysql用户只需作为mysql/data/目录下所有文件的所有者
  [root@instance_4dbde0 mysql]# chown -R mysql data

#复制启动文件
  [root@instance_4dbde0 mysql]# cp support-files/mysql.server /etc/init.d/mysqld

  [root@instance_4dbde0 mysq]# chmod 755 /etc/init.d/mysqld

  [root@instance_4dbde0 bin]# cp /usr/local/mysql/bin/my_print_defaults /usr/bin/

#修改启动脚本
  [root@instance_4dbde0 mysql]# vim /etc/init.d/mysqld

#修改项:
  basedir=/usr/local/mysql/
  datadir=/usr/local/mysql/data
  port=3306

#启动服务
  [root@instance_4dbde0 mysql]# service mysqld start

#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
  [root@instance_4dbde0 mysql]# vim /etc/profile

#添加mysql路径
  export PATH=$PATH:/usr/local/mysql/bin

#刷新立即生效
  [root@instance_4dbde0 mysql]# source /etc/profile

配置以上信息之后,基本就可以启动了mysql(如果不能启动,请看最后的配置文件),但是现在还缺少mysql的配置文件,即my.cnf文件(没有它Mysql也可以使用内置的默认参数启动),最后说

接下来就可以使用命令登录mysql了

  [root@instance_4dbde0 bin]# mysql -uroot -p
Enter password:   -- 此时不知道密码,所以,直接先改my.cnf配置文件

#如果登不进去,则改my.cnf配置文件,跳过验证登录,在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

vim /etc/my.cnf 添加 skip-grant-tables

#重新启动,登录

  ps -ef | grep mysql
  kill -9 (进程号)
  service mysqld start
  mysql -uroot

#修改密码

  use mysql;
  update user set authentication_string=password("新密码") where user='root';
  flush privileges;
  exit;

参考:https://www.cnblogs.com/weifeng1463/p/7941625.html

注意:服务器mysql用到的端口得开放,能访问才行哟

2、实现远程连接(授权法)

   将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。   
   update user set host = ’%’ where user = ’root’;

   将权限改为ALL PRIVILEGES

mysql> use mysql;
Database changed
mysql> grant all privileges  on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+
| localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| %            | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法)-- 建议这个,比较快,还不会报错

use mysql;

update user set host = '%' where user = 'root';

这样在远端就可以通过root用户访问Mysql.