安装MySQL

本文讲述如何在Linux系统中如何手动安装MySQL。

Linux下安装MySQL

步骤1:下载

https://dev.mysql.com/downloads/mysql/ 下载最新的MySQL社区版本,记得操作系统选择为Linux - Generic,OS Version选为Linux - Generic (glibc 2.17)(x86, 64-bit)(如果是32位的,请选择32-bit): Install1.png

点击上图中的”Download”按钮,进入下个页面: Install2.png

点击框中的链接,浏览器将会下载,保存的文件类似于mysql-x.x.x-linux-glibc2.17-x86_64-minimal-rebuild.tar.xz

步骤2:解压

将文件上传到服务器,上传到的目录为你要选择的安装目录,比如 /usr/local 目录下,并记下这个目录,将来启动或者停止MySQL的时候都需要用到,然后使用tar命令解压:

  1. cd $安装文件所在目录
  2. tar -xJvf mysql-x.x.x-linux-glibc2.17-x86_64-minimal-rebuild.tar.xz
  3. mv mysql-x.x.x-linux-glibc2.17-x86_64-minimal-rebuild mysql8

将其中的x.x.x替换成实际的版本号。

步骤3:初始化

先准备mysql用户和数据库存放目录data/

  1. cd mysql8
  2. groupadd mysql
  3. useradd mysql -g mysql
  4. mkdir data
  5. chown mysql:mysql data

执行初始化:

  1. bin/mysqld --initialize --user=mysql

将会输出类似于以下的信息:

  1. 2021-09-25T08:26:45.321239Z 0 [System] [MY-013169] [Server] /opt/mysql8/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 5964
  2. 2021-09-25T08:26:45.330015Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
  3. 2021-09-25T08:26:45.616649Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
  4. 2021-09-25T08:26:46.420358Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
  5. 2021-09-25T08:26:46.420949Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
  6. 2021-09-25T08:26:46.579100Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: d_qPgidGM2tl

其中A temporary password is generated for root@localhost: d_qPgidGM2tl 中的一行的最后数据(d_qPgidGM2tl部分)是MySQL临时密码,每次初始化的结果都会不同,请记住这个密码。

步骤4:启动

使用以下命令启动已初始化的MySQL:

  1. bin/mysqld_safe --user=mysql &

不如意外的话,应该可以在进程中看到启动的mysqld,类似于:

  1. [root@web001 mysql8]# ps ax|grep mysql
  2. 6220 pts/0 S 0:00 /bin/sh bin/mysqld_safe --user=mysql
  3. 6290 pts/0 Sl 0:00 /opt/mysql8/bin/mysqld --basedir=/opt/mysql8 --datadir=/opt/mysql8/data --plugin-dir=/opt/mysql8/lib/plugin --usermysql --log-error=web001.err --pid-file=web001.pid

步骤5:修改初始密码

使用以下命令登录MySQL控制台:

  1. bin/mysql -uroot -p

输入步骤3生成的临时密码,可以进入MySQL控制台。

使用以下命令修改默认密码:

  1. ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

其中的123456就是要修改成的新密码,你可以换成别的。

修改完成之后,可以使用quit;退出MySQL控制台,然后重新使用命令重新登录控制台,来测试新的密码是否修改成功。

至此,整个MySQL已经安装完成可以投入正常使用了。

常用命令

创建新用户:

  1. CREATE USER 'user'@'hostname' IDENTIFIED BY 'password';

其中:

  • user - 要创建的用户名
  • hostname - 允许登录的主机地址,可以是单个IP,也可以使用%表示不限制主机地址
  • password - 用户密码

删除用户:

  1. DROP USER 'user';

其中:

  • user - 要删除的用户名

授权:

  1. GRANT ALL PRIVILEGES ON 数据库名.* TO 'user'@'hostname';

其中:

  • 数据库名 - 当前用户可以管理的数据库名称
  • user - 要授权的用户名
  • hostname - 授权的用户主机地址

导出和恢复

导出

可以使用 mysqldump 命令导出一个数据库:

  1. mysqldump [数据库名] -u用户名 -p > 导出的目标SQL文件

如果用户名有密码,则命令执行后,需要输入密码。

以下是一个示例:

  1. mysqldump edges -uroot -p > /root/edges.sql

其中 edges 示例数据库名称,root 是数据库用户名, /root/edges.sql 是导出的目标SQL文件名。这几个参数都需要根据你自己的实际环境进行修改。

注意:如果访问日志过多,请先删除/清空访问日志再导出,功能在:”系统设置”–“手动清理”–“数据库”–“手动清理”。

恢复

可以使用 mysql 命令恢复一个数据库:

  1. mysql -u用户名 -p 数据库名 < 导出的SQL文件

如果用户名有密码,则命令执行后,需要输入密码。

比如我们把 /root/edges.sql 导入 edges 数据库中:

  1. mysql -uroot -p edges < /root/edges.sql

其中 edges 示例数据库名称,root 是数据库用户名, /root/edges.sql 是导出的SQL文件名。这几个参数都需要根据你自己的实际环境进行修改。