linux下MySQL安装配置

MySQL 5.7的安装

准备: MySQL安装包 ,登录MySQL需要的用户名和密码,需要创建的数据库名称,数据库脚本文件
在以下标红色的步骤中替换成上述内容即可

1.MySQL安装
  1. MySQL安装包上传至服务器下/usr/local下

  2. 任意路径下,执行以下命令来创建MySQL用户组和MySQL用户

groupadd mysql
useradd -g mysql mysql
  1. 切换mysql文件所在目录下将文件解压。

    cd /usr/local
    tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

  2. 为了避免出现权限问题,给mysql解压文件所在目录赋予权限,重命名mysql文件夹

mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
rm -rf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
chmod  a+x  mysql
chown -R mysql:mysql mysql
  1. 在etc下删除原有配置文件my.cnf,并替换为以下内容的新my.cnf配置文件
rm  -r /etc/my.cnf
vi /etc/my.cnf

并在该文件内添加以下代码:
输入i进入编辑模式,粘贴以下内容

[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

max_connections=200
character-set-server=utf8
lower_case_table_names=1
max_allowed_packet=16M
init_connect='set names utf8' 
explicit_defaults_for_timestamp=true
default-time_zone = '+8:00'

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

输入esc和:wq保存并退出

  1. 授权该文件
cd /etc
chmod a+x my.cnf
  1. 配置环境路径,顺利登陆MySQL
vi /etc/profile

在文件最后添加如下内容

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

在这里插入图片描述
使配置文件生效

source /etc/profile
  1. 初始化数据库
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf  --user=mysql --initialize

即使记录下初始化登录密码,如图所示:
在这里插入图片描述
方框中为初始化密码,注意前面空格不是密码范围,从第一个字母到最后为密码(最后一位密码有时是空格)

  1. 启动数据库
/usr/local/mysql/support-files/mysql.server start
  1. 添加数据库服务到系统服务中并设置开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod a+x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
chkconfig mysqld on
  1. 创建软链接(本操作可能不需要)
ln -s /usr/local/mysql/bin/mysql /usr/bin
  1. 用临时密码登录并修改密码

使用临时密码登录

mysql -u root -p

输入刚才记录的初始化密码
如图所示,出现Welcome字样表示登录成功
在这里插入图片描述
登录成功后修改 用户名和密码(修改密码需与程序中的数据库密码一致)如:用户名为 root
密码为123456

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql>exit;
  1. 如果系统启用了防火墙,可以把MySQL 的3306 端口加入防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
2.MySQL 配置
  1. 查看系统中是否存在数据库脚本文件夹dataSql
cd /usr/local
ll

在这里插入图片描述
若存在则使用工具直接将数据库脚本上传至服务器该目录下
不存在则创建dataSql文件夹,再上传数据库脚本至该目录下

cd /usr/local
mkdir dataSql
  1. 重启 mysql 服务
systemctl restart mysqld.service
  1. 使用新密码登录,运行脚本文件并设置远程登录权限

使用新密码登录mysql数据库

mysql -u root -p

创建并使用指定的数据库,运行/usr/local/dataSql目录下的脚本文件,如:创建并使用名为oop的数据库 ,使用base_standard.sql脚本文件

mysql>create database oop;
mysql>show databases ;
mysql>use oop;
mysql>source /usr/local/dataSql/base_standard.sql;

出现success等字样表示运行成功
设置远程登录权限

mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>exit;
3.常见问题

1.启动MySQL 失败,报“Can’t create/write to file ‘/var/lib/mysql/is_writable’ ,例如:

[root@SmartByDevServer ~]# systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
[root@SmartByDevServer ~]# systemctl status mysqld.service
● mysqld.service - SYSV: MySQL database server.
	   Loaded: loaded (/etc/rc.d/init.d/mysqld; generated)
	   Active: failed (Result: exit-code) since Wed 2020-08-26 09:41:40 CST; 47s ago
	     Docs: man:systemd-sysv-generator(8)
		  Process: 12023 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1>

	8月 26 09:41:38 SmartByDevServer systemd[1]: Starting SYSV: MySQL database serv>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: Initializing MySQL database:  m>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.183736Z 0 [>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185023Z 0 [>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185033Z 0 [>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: [失败]
	8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Control process ex>
	8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Failed with result>
	8月 26 09:41:40 SmartByDevServer systemd[1]: Failed to start SYSV: MySQL databa>
	lines 1-15/15 (END)...skipping...
	`mysqld.service - SYSV: MySQL database server.`
		   Loaded: loaded (/etc/rc.d/init.d/mysqld; generated)
		   Active: failed (Result: exit-code) since Wed 2020-08-26 09:41:40 CST; 47s ago
	Docs: man:systemd-sysv-generator(8)
	Process: 12023 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)
	8月 26 09:41:38 SmartByDevServer systemd[1]: Starting SYSV: MySQL database server....
8月 26 09:41:40 SmartByDevServer mysqld[12023]: Initializing MySQL database:  mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 ->
8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.183736Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --ex>
8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185023Z 0 [ERROR] --initialize specified but the data directory exists and is not writab>
8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185033Z 0 [ERROR] Aborting
8月 26 09:41:40 SmartByDevServer mysqld[12023]: [失败]
8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Control process exited, code=exited status=1
8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Failed with result 'exit-code'.
8月 26 09:41:40 SmartByDevServer systemd[1]: Failed to start SYSV: MySQL database server..

可以通过关闭selinux解决

2.启动MySQL 失败,报“ /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够“

[root@SmartByDevServer ~]systemctl status mysqld.service
● mysqld.service - SYSV: MySQL database server.
   Loaded: loaded (/etc/rc.d/init.d/mysqld; generated)
   Active: failed (Result: exit-code) since Wed 2020-08-26 14:15:37 CST; 45s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 855 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)

8月 26 14:15:33 SmartByDevServer systemd[1]: Starting SYSV: MySQL database server....
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行198: /var/log/mysqld.log: 权限不够
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够
8月 26 14:15:37 SmartByDevServer mysqld[855]: MySQL Daemon failed to start.
8月 26 14:15:37 SmartByDevServer mysqld[855]: Starting mysqld:  [失败]
8月 26 14:15:37 SmartByDevServer systemd[1]: mysqld.service: Control process exited, code=exited status=1
8月 26 14:15:37 SmartByDevServer systemd[1]: mysqld.service: Failed with result 'exit-code'.
8月 26 14:15:37 SmartByDevServer systemd[1]: Failed to start SYSV: MySQL database server..

可能是目录 /var/run/mysqld或者文件/var/run/mysqld/mysqld.pid不存在,可通过重建目录或文件解决。

mkdir -p /var/run/mysqld
chown mysql.mysql /var/run/mysqld

尝试重启mysql,如果还不行,再重建mysqld.pid文件。

4.总结事项

MySQL安装目录为 /usr/local/mysql文件夹
MySQL脚本运行目录为 /usr/local/dataSql文件夹中的文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值