Linux 安装MySQL

打印 上一主题 下一主题

主题 647|帖子 647|积分 1941

前言:

根据对应的系统位数,选择需要下载的文件。
查看系统位数
  1. getconf LONG_BIT
复制代码


一、下载MySQL

官网地址:MySQL :: Download MySQL Community Server (Archived Versions)


通过Linux命令下载:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-对应版本,位数.tar.gz
  1. #修改为自己需要版本
  2. wget https://dev.mysql.com/get/Downloads/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
复制代码
推荐命令下载 如果使用命令下载可以跳过第二步的第一步


二、上传MySQL压缩包到Linux并解压

1、上传到/usr/local目次


2、解压

  1. tar -xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
复制代码
3、修改文件名

  1. mv mysql-5.7.38-linux-glibc2.12-x86_64/ mysql
复制代码
4、删除压缩包

也可留着安装成功后删
  1. rm -f mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
复制代码


三、创建MySQL用户组、组名

  1. # 创建MySQL用户组
  2. groupadd mysql
  3. # 添加MySQL用户并添加到MySQL用户组
  4. useradd -r -g mysql mysql
复制代码


四、创建数据目次并开启权限

1、在/usr/local/mysql目次下创建data文件夹

  1. mkdir data
复制代码


2、开启权限

  1. chown -R mysql:mysql /usr/local/mysql/
复制代码


五、配置my.cnf文件

1、编辑my.cnf

  1. vim /etc/my.cnf
复制代码
2、修改内容,原来的直接删除把下面复制进去

复制的时候看清安装目次和数据存放目次是否和你的一致
  1. [mysqld]
  2. # 设置3306端口
  3. port=3306
  4. # 设置mysql的安装目录
  5. basedir=/usr/local/mysql
  6. # 设置mysql数据库的数据的存放目录
  7. datadir=/usr/local/mysql/data
  8. # 允许最大连接数
  9. max_connections=200
  10. # 允许连接失败的次数。
  11. max_connect_errors=10
  12. # 服务端使用的字符集默认为utf8mb4
  13. character-set-server=utf8mb4
  14. # 创建新表时将使用的默认存储引擎
  15. default-storage-engine=INNODB
  16. # 默认使用“mysql_native_password”插件认证
  17. #mysql_native_password
  18. default_authentication_plugin=mysql_native_password
  19. [mysql]
  20. # 设置mysql客户端默认字符集
  21. default-character-set=utf8mb4
  22. [client]
  23. # 设置mysql客户端连接服务端时默认使用的端口
  24. port=3306
  25. default-character-set=utf8mb4
复制代码
六、初始化MySQL

执行命令MySQL目标下bin目次下任选一个都行
1、执行命令 /usr/local/mysql目次下

  1. ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
复制代码
2、执行命令  /usr/local/mysql/bin 目次下

  1. ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize
复制代码
命令说明:
  1. –defaults-file:默认配置文件地址
  2. –datadir:是刚刚创建的data数据目录(不要闭着眼复制!你的目录可能跟我不一样!)
  3. –basedir:是MySQL安装目录(你的目录名字可能跟我不一样,我的是mysql,注意注意!!!)
  4. –user:刚刚创建的mysql用户
复制代码


红款中的密码一会登录(./mysql -u root -p )的时候要用到
怎样初始化报错如下所示

解决方案:  
  1. yum -y install numactl
复制代码

3、将权限改回保存data

权限不改也行
  1. chown -R root .
  2. chown -R mysql data/
复制代码


七、启动MySQL修改初始密码、授权远程连接

1、启动服务

  1. /usr/local/mysql/support-files/mysql.server start
复制代码


2、修改初始密码

  1. # 切换目录
  2. cd /usr/local/mysql/bin
  3. # 登录命令
  4. ./mysql -u root -p
  5. #修改密码
  6. set password for root@localhost=password('我的密码');
  7. #刷新权限
  8. FLUSH PRIVILEGES;
复制代码
SET PASSWORD = PASSWORD('密码');   可以不用执行,其时为测试设置了个简单的
执行下面命令也可以设置密码:二选其一
# 设置密码
SET PASSWORD = PASSWORD('ok');
# 设置用户的访问密码用不外期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
#刷新权限
FLUSH PRIVILEGES;


3、授权远程连接

1、在登录MySQL的状态授权

如果navicate连接报1130等就是没有授权远程连接

  1. # 访问mysql库
  2. use mysql
  3. # 修改root用户能在任何host访问(授权远程连接)
  4. update user set host = '%' where user = 'root';
  5. # 刷新
  6. FLUSH PRIVILEGES;
复制代码


2、退出mysql


这里就可以用连接工具测试链接了

八、开启自启

1、依次执行下面命令进行软连接

  1. ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  2. ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
  3. service mysql restart
复制代码

2、赋予权限、添加服务、显示服务列表

  1. #赋予权限
  2. chmod +x /etc/init.d/mysql
  3. #添加服务
  4. chkconfig --add mysql
  5. #显示服务列表
  6. chkconfig --list
复制代码


3、开启失败

如上图所示,如果是2,3,4,5 都是开启的话则成功。
如果不是,可运行以下命令开启:
  1. chkconfig --level 2345 mysql on
复制代码
4、重启服务器

  1. reboot
复制代码
5、查看MySQL进程是否启动

  1. ps -aux | grep mysql
复制代码


九、Navicat 连接

连接时出现 2002错误代码,可能是防火墙没有开放3306端口。
也可以将防火墙关闭,不建议如许
  1. # 开启端口3306
  2. firewall-cmd --zone=public --add-port=3306/tcp --permanent
  3. # 重启防火墙
  4. firewall-cmd --reload
  5. # 查看已经开放的端口
  6. firewall-cmd --list-ports
复制代码


十、防火墙命令

  1. 1.查看防火墙状态
  2. 查看防火墙状态 systemctl status firewalld
  3. 开启防火墙 systemctl start firewalld  
  4. 关闭防火墙 systemctl stop firewalld
  5. 开启防火墙 service firewalld start
  6.          若遇到无法开启
  7.          先用:systemctl unmask firewalld.service
  8.          然后:systemctl start firewalld.service
  9. 2.查看对外开放的端口状态
  10.          查询已开放的端口 netstat  -ntulp | grep 端口号:可以具体查看某一个端口号
  11.          查询指定端口是否已开 firewall-cmd --query-port=666/tcp
  12.            提示 yes,表示开启;no表示未开启。
  13. 3.对外开发端口
  14.        查看想开的端口是否已开:firewall-cmd --query-port=6379/tcp
  15.        添加指定需要开放的端口:firewall-cmd --add-port=123/tcp --permanent
  16.        重载入添加的端口:firewall-cmd --reload
  17.        查询指定端口是否开启成功:firewall-cmd --query-port=123/tcp
  18.        移除指定端口:firewall-cmd --permanent --remove-port=123/tcp
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表