Linux安装MYSQL5.7.29--(傻瓜版3分钟搞定)

搜集了MYSQL的各种安装方式,还有版本不同带来的问题会发现在 Mac 或者 在linux上安装5.7 一下版本时出现的问题会少很多,尤其是拿着 dmg文件在Mac 安装 就是1分钟的事,但是在linux 安装 5.7时出现了不少的问题,出现的问题各式各样,大家安装时碰到问题了,一定要找你当前版本下的解决方式。严格按照本文步骤可以顺利安装,这也是我连续在 三台linux服务器安装后的精简版(需要yum安装版本的可以点击另外一篇文章访问地址)

1、先查看mysql安装情况

rpm -qa|grep -i mysql
输出:
rpm -ev mysql-community-libs-5.7.26-1.el6.x86_64
rpm -ev mysql-community-server-5.7.26-1.el6.x86_64
rpm -ev mysql-community-client-5.7.26-1.el6.x86_64
rpm -ev mysql-community-common-5.7.26-1.el6.x86_64

2、提示依赖检测失败时,使用以下命令删除

rpm -ev mysql-community-libs-5.7.26-1.el6.x86_64 --nodeps
rpm -ev mysql-community-server-5.7.26-1.el6.x86_64 --nodeps
rpm -ev mysql-community-client-5.7.26-1.el6.x86_64 --nodeps
rpm -ev mysql-community-common-5.7.26-1.el6.x86_64 --nodeps

3、删除全部信息后,执行以下命令(根目录下执行,检查的彻底)

find / -name mysql
rm -rf 对应的mysql*

rpm -qa|grep -i mysql如果没有结果,则说明彻底删除成功

本次演练安装的mysql 版本是:MYSQL-5.7.29-Linux.tar.gz(官网下载)

Linux安装MYSQL5.7.29--(傻瓜版3分钟搞定)_第1张图片

Linux安装MYSQL5.7.29--(傻瓜版3分钟搞定)_第2张图片

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

5、解压及移动位置

tar -xvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/MySQL_5.7.29
想弄软连接命令(小白慎用): 
ln -s mysql-5.7.29-linux-glibc2.12-x86_64/  MySQL_5.7.29

6、创建文件夹及用户并给数据目录赋予权限

添加用户组

groupadd mysql
useradd -r -g mysql mysql

新建文件夹

cd /usr/local/MySQL5.7.29
mkdir mysql_data
mkdir mysql_log
mkdir mysql_pid

赋予目录权限

chown mysql:mysql -R /MySQL_5.7.29

7、配置my.cnf参数(这里很重要,不会的抄我的就可以)

没有下载vim的用vi
vim /etc/my.cnf
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/MySQL_5.7.29
datadir=/usr/local/MySQL_5.7.29/mysql_data
socket=/tmp/mysql.sock
log-error=/usr/local/MySQL_5.7.29/mysql_log/mysql.err
pid-file=/usr/local/MySQL_5.7.29/mysql_pid/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0

编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出

8、初始化MYSQL

cd /usr/local/MySQL_5.7.29/bin
执行以下命令
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/MySQL_5.7.29/ --datadir=/usr/local/MySQL_5.7.29/mysql_data --user=mysql --initialize

若出现以下错误删除之前的mysql_data文件(rm -rf /usr/local/MySQL_5.7.29/mysql_data)

继续执行上面的代码

Linux安装MYSQL5.7.29--(傻瓜版3分钟搞定)_第3张图片

9、查看初始密码(也就是配置文件里面的err内容)

grep 'temporary password' /usr/local/MySQL_5.7.29/mysql_log/mysql.err

10、防火墙启动关闭命令(自我选择)

13.设置开机自启动服务控制脚本:(将{MySQL5.7.29}/ support-files/mysql.server 拷贝为/etc/init.d/mysqld并设置运行权限)
[root@localhost MySQL5.7.29]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost MySQL5.7.29]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost MySQL5.7.29]# chkconfig --add mysqld
[root@localhost MySQL5.7.29]# chkconfig --list mysqld
#  systemctl start mysqld    //开启 MySQL Server

#  systemctl status mysqld  //查看 MySQL Server 状态

#  systemctl stop mysqld    //关闭 MySQL Server

11、测试是否安装成功

# mysql    //进入mysql命令行界面

12、远程连接MySQL,开启防火墙端口

//打开 iptables 的配置文件: 
# vim /etc/sysconfig/iptables 
//如果该 iptables 配置文件 不存在,先执行
#  yum install iptables-services   //安装。

//iptables文件中添加以下内容
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp

//执行
#  firewall-cmd --reload     //重启防火墙,使最新的防火墙设置规则生效。

//mysql安全设置,服务器启动后,可以执行 
# mysql_secure_installation;

运行过程可能出现的异常

配置问题

启动mysql 报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
1.先查看mysql启动状态 /etc/rc.d/init.d/mysqld status
2.mysql.sock位置查找与验证?find / -name mysql.sock  
/tmp/mysql.sock 验证目录是否正确
mysql -u root -p -S tmp/mysql.sock
备注:-S参数socket file文件验证
3.验证mysql.sock文件权限和用户是否正确?
如果是权限问题,则先改变权限 
#chown -R mysql:mysql /tmp/mysql.sock
[root@localhost ~]# /etc/init.d/mysqld start
启动 MySQL: [ OK]
4.永久解决 修改/etc/my.cnf
添加以下内容到/etc/my.conf:
[client]
socket = tmp/mysql.sock
[mysqld]
socket = /tmp/mysql.sock

MySQL账号设置

//创建一个普通用户 user ,密码是 user
mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'user';    

//给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user'@'%'; 

//创建一个管理员用户 admin 账号 ,密码是 some_pass
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'admin';

//给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
mysql> GRANT ALL ON *.* TO 'admin'@'%';

//使授权立刻生效
mysql> flush privileges;

开机启动MySQL设置

# systemctl is-enabled mysqld.service;echo $?
//如果是 enabled 则说明是开机自动,如果不是,执行
# chkconfig --levels 235 mysqld on

设置MySQL UTF-8编码

# vim /etc/my.cnf

//修改内容如下
[mysqld]
character_set_server = utf8

[mysql]
default-character-set = utf8


//查看当前 MySQL 字符集进入mysql
#mysql> SHOW VARIABLES LIKE 'character%';    

#mysql> SHOW VARIABLES LIKE 'character%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
--------------------- 

修改MySQL密码可以直接登录的小伙伴,直接设置密码即可

mysql>set password for 'root'@'localhost'=password('newpasswd');

 无法直接登录的小伙伴,参考一下步骤

//获取MySQL的临时密码, 只有启动过一次mysql才可以查看临时密码
# grep 'temporary password' /var/log/mysqld.log


//登陆并修改密码
# mysql -uroot -p

//修改密码
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
//密码设置太简单出现以下的提示
ERROR 1819 (HY000): Your password …

//首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
//再修改密码的长度
mysql> set global validate_password_policy=0;
//再次执行修改密码就可以了
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

//授权其他机器登陆
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql> FLUSH  PRIVILEGES;

 

你可能感兴趣的:(阿里云,MySQL)