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 mysql useradd -g mysql mysql
4、创建data目录
#在/usr/local/mysql目录下创建data目录,数据库文件将会放在这里
cd /usr/local/mysql mkdir 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=3306 socket=/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=1 max_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/mysqld chmod +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/bin export 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 mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> 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 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
修改密码出现了问题:
11、设置可以通过远程连接访问
参考我的这篇博客:https://www.cnblogs.com/zhangzhixi/p/14396345.html
登录成功!!!
测试一下远程访问:成功