首先……你要有一个服务器,哈哈
首先下载好linux下mysql的安装包(当然也可以直接使用命令下载,我是先下载的)
我这里的版本是mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz
然后可以将它放到你想放到的文件夹下(这里我是放到了home下)
然后打开你存放mysql安装包的文件夹 (命令:cd /home)
命令:tar -zxvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz (后面的mysql 是我下载的版本 ,这里需要注意文件的后缀 是GZ的才可以用 “-zxvf”来解压)
复制解压后的mysql目录
命令:cp -r mysql-5.6.42-linux-glibc2.12-x86_64 /usr/local/mysql/ (这步操作是将刚刚解压的mysql目录复制到 usr/local/mysql 中)
添加用户组 命令:groupadd mysql
添加用户mysql 到用户组mysql 命令:useradd -g mysql mysql
-- 打开/usr/local/mysql/文件夹(之前咱们复制到的文件夹) 命令: cd /usr/local/mysql/
-- 在/usr/local/mysql/文件夹下创建新的文件夹data/mysql 命令:mkdir ./data/mysql
-- 执行命令:./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化数据库
这个命令和mysql5.7之前的命令不一样了,之前命令是:bin/mysql_install_db --user=mysql,但是之后的版本已经被mysqld --initialize替代
***(这里注意:有一些小伙伴执行这句话会报错
-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: 没有那个文件或目录
解决:执行命令: yum -y install perl perl-devel
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:执行命令:yum -y install libaio-devel)
-- 复制文件到/etc/init.d/下并改名为mysqld(就是将mysql.server文件 放到了/etc/init.d下命名为mysqld) 命令:cp support-files/mysql.server /etc/init.d/mysqld
-- 修改mysqld的权限 命令:chmod 755 /etc/init.d/mysqld
-- 复制my-default.cnf 到/etc/下并改名为my.cnf 命令:cp support-files/my-default.cnf /etc/my.cnf
-- 修改启动脚本 命令:vim /etc/init.d/mysqld (这里也可以使用vi /etc/init.d/mysqld ,之所以使用vim是因为有高亮比较容易找到像修改的地方)
-- 修改(将basedir 和 datadir 修改成如下样式)
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
-- 启动服务 命令:service mysqld start
-- 测试一下连接 命令:./mysql/bin/mysql -uroot
***这里你会发现报错了,兄弟莫慌,待老夫细细道来
-- 在这里我们为其添加一个环境变量 ,编辑 /etc/profile
命令:vim /etc/proflie (然后发现里面真干净……反正我里面是啥也没有)
然后添加 环境变量 PATH=$PATH:/usr/local/mysql/bin
然后保存退出(不会保存退出的可以去百度,我也会在文章最后写出来方法)
-- 然后就可以啦,接下来我们启动服务
启动服务的命令:service mysqld start
关闭服务的命令:service mysqld stop
查看运行状态的命令:service mysqld status
-- 然后我们登录下我们安装的mysql (默认的用户名是 root 密码是空的 <就是直接回车>)
这里我们直接敲回车就可以啦
出现这个就登录成功啦
***(这里需要注意下 ,有的小伙伴执行mysql -u root -p 的时候 报错咯
需要执行 命令:source /etc/profile 这个命令是让修改的proflie立刻生效的)
-- 登录成功之后,我们来创建一个用户
在mysql命令行下 ,我们输入
GRANT ALL PRIVILEGES ON *.* TO 'smile'@'%' IDENTIFIED BY 'smile' WITH GRANT OPTION;
这里我们解析一下这个语句:
1)第一个“smile”呢,是我们的用户名,你自己爱设啥设啥;
2)后面的“%”呢 ,代表所有的主机都可以访问;
3) 第二个“smile”呢,是密码,也是你自己爱设啥设啥
然后执行命令: flush privileges; 使刚才的语句立即生效
-- 接下来我们就可以查询一下 我们新建的用户了
在mysql下执行 语句:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
我们就发现已经可以看见 自己的用户了。
*********************************(这里一定要注意下,我们还需要执行一步操作,否则你根本就没办法登录你自己新建的用户
在mysql下执行 语句: Delete FROM user Where User='' and Host='localhost';
这个语句的意义在于:我们有一个用户名为空的账户,mysql会先匹配它,然后就一直提示你密码错误,删掉这个匿名用户, 然后执行 语句:flush privileges;
实不相瞒,这个问题困扰了我好久
)
-- 这样我们就可以登录自己的用户了
执行 命令(这里的“smile”是你自己设置用户名哦):mysql -u smile -p
这样我们的mysql 就安装完成啦。
首先,我们要知道自己的 公网IP地址 然后 我们连接一哈 ,发现并连接不上,这是为啥呢??莫慌,待老夫细细道来
问题可能出现的原因:
1)防火墙没有添加3306端口
执行命令:/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
2) 防火墙没有关闭
执行命令: systemctl stop firewalld
执行命令: systemctl disable firewalld
开机不再开启防火墙命令:chkconfig iptables off
3)服务器上登录mysql,查看是否有地址限制 (这一步,我们已经做过了,就是之前配置的远程链接)
4) 就是你的服务器就没开通3306端口
我这里使用的是阿里云的服务器
首先登录自己的阿里云,点开自己的实例
我们点开“配置规则”之后,发现就没有3306端口(我这个是已经添加好的)
既然没有“3306端口”,那么我们点击上面的“添加安全组规则”
我们在“端口范围”中输入“3306/3306”,然后在“授权对象”中,输入“0.0.0.0/0”,最后点击确定
然后我们在打开navicat,测试一下连接,发现可以了。
至此,我们的mysql算是安装完成了!!!!!!可喜可贺,今晚吃鸡!!!!!
----------------------------------------- I`am Joshua,may god bless you