Linux下MySQL(5.7.17)的安装
一、MySQL的安装
说明:
Linux下软件的安装通常有三种方式:二进制、rpm、yum三种方式。它们三个具体的区别参考博客:
https://www.cnblogs.com/LiuChunfu/p/8052890.html
MySQL的下载:
因为我使用的是阿里云服务器,联网的,所以我直接在linux下进行下载,使用Windows的小伙伴也可以将mysql下载本地再上传到服务器上面
附上官网的下载链接通过命令行在服务器内下载软件包的连接:
官网:MySQL官网下载
服务器下载(联网):wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
1、软件的卸载
rpm -qa | grep mysql
#若存在 mysql 安装文件,则会显示 mysql安装的版本信息
如:mysql-connector-odbc-5.2.5-6.el7.x86_64
#卸载已安装的MySQL,卸载mysql命令,如下:
rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64
2、软件的解压重命名与移动
解压:tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz重命名:mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql移动:mv mysql /usr/local/
3、添加用户组、用户
groupadd mysqluseradd -g mysql mysql
4、创建data目录
#在/usr/local/mysql目录下创建data目录,数据库文件将会放在这里
cd /usr/local/mysqlmkdir data
5、更改mysql目录的用户和组为mysql
注意要是当前mysql目录:
[root@zhixi mysql]# pwd/usr/local/mysql[root@zhixi mysql]# chown -R mysql:mysql ./
6、配置my.cnf
在5.7.18开始官方不再二进制包中提供my-default.cnf文件,参考官网:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
我们这里在etc目录下新建一个my.cnf文件:
[root@zhixi etc]# pwd/etc[root@zhixi etc]# touch my.cnf
my.cnf配置文件解释:
my.cnf文件就是把在命令行上启动MySQL时后面的参数用cnf文件配置好,那么下载启动时就不再需要在命令上加如参数。这个my.cnf文件可以是自定义位置,也可以使用如下默认的位置,只要放在默认位置,MySQL自动识别(通过deb或者APT源安装的,初始位置在下方列表):在Unix和类Unix系统上读取选项文件文件名目的/etc/my.cnf 全局选项/etc/mysql/my.cnf全局选项SYSCONFDIR/my.cnf全局选项$MYSQL_HOME/my.cnf服务器特定选项(仅限服务器)defaults-extra-file 指定的文件 --defaults-extra-file(如果有的话)~/.my.cnf用户特定的选项~/.mylogin.cnf用户特定的登录路径选项(仅限客户端)在上表中,~表示当前用户的主目录(的值 $HOME)。首先它会找/etc/my.cnf 这个文件, 如果这个文件不存在,那么它接下来去找/etc/mysql/my.cnf这个文件,依此类推
my.cnf参数配置:具体的参考https://blog.csdn.net/bluerebel/article/details/89394066
[mysql] # 设置mysql客户端默认字符集default-character-set=utf8 socket=/tmp/mysql.sock [mysqld] #mysql无密码登陆#skip-grant-tables #禁用DNS解析#skip-name-resolve port=3306socket=/tmp/mysql.sock # 设置mysql的安装目录basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录datadir=/usr/local/mysql/data # 允许最大连接数max_connections=200 # 服务端使用的默认字符集character-set-server=utf8 # 创建新表时将使用的默认存储引擿default-storage-engine=INNODB #lower_case_table_name=1max_allowed_packet=16M
7、初始化mysql(进入到mysql的bin目录)
#新版本中已经不再建议使用mysql_install_db来安装
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#执行完后会输出:红色的就是初始密码
8、设置mysql为开机自启
#进入mysql安装目录,拷贝mysql.server到init.d目录下cp ./support-files/mysql.server /etc/rc.d/init.d/mysqldchmod +x /etc/rc.d/init.d/mysqld#添加服务chkconfig --add mysqld#查看是否添加成功chkconfig --list mysqld
看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下: chkconfig --level 345 mysqld on
9、配置环境变量
vi /etc/profile#添加如下内容PATH=$PATH:/usr/local/mysql/binexport PATH#使配置生效source /etc/profile#查看一下配置是否生效echo $PATH
10、初次登陆配置(修改密码)
#启动mysql:service mysqld start
#登陆mysql,密码是上面提到的“wqYqOy)+o3yj”
mysql -u root -p密码
注意:我这里报错, 提示我找不到mysql.sock,可是我在my.cnf中已经配置过了,比较无语,找了篇博客还是没解决:https://blog.csdn.net/qw_xingzhe/article/details/78699157
我的解决方案是,给mysql设置为无需密码进行登录,修改/etc/my.cnf配置文件即可:
然后使用命令:mysql,直接回车进入到mysql数据库中,进行修改密码:
ps:如果这一步use mysql出现了错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement
就手动修改密码吧,跟下面的修改密码也没太大区别,修改密码: ALTER USER USER() IDENTIFIED BY '123456';
mysql> use mysqlReading table information for completion of table and column namesYou can tu off this feature to get a quicker startup with -ADatabase changedmysql> update user set password=password('密码') where user='root' and host='localhost'; ERROR 1054 (42S22): Unknown column 'password' in 'field list'mysql> update mysql.user set authentication_string=password('zhixi158') where user='root';Query OK, 1 row affected, 1 waing (0.00 sec)Rows matched: 1 Changed: 1 Waings: 1mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
修改密码出现了问题:
11、设置可以通过远程连接访问
参考我的这篇博客:https://www.cnblogs.com/zhangzhixi/p/14396345.html
登录成功!!!
测试一下远程访问:成功
作者:Java小白的搬砖路
来源链接:https://www.cnblogs.com/zhangzhixi/p/14961507.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。