小白学习linux安装mysql数据库,期间还碰到了一些坑,记录一下。
1.首先从MySQL官网下载适合自己linux系统的文件。
2.通过Xftp将压缩包上传到自己的linux服务器/usr/local目录下
进入/usr/local 文件夹下
解压 tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
通过命令修改一下解压的文件夹名称
mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
3.添加系统mysql组和mysql用户
添加系统mysql组 groupadd mysql
添加mysql用户 useradd -r -g mysql mysql (添加完成后可用id mysql查看)
4.安装数据库
切到mysql目录 cd /usr/local/mysql
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
安装数据库 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成了临时密码
执行以下命令创建RSA private key
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
修改当前data目录拥有者为mysql用户 chown -R mysql:mysql data
5.配置my.cnf
vim /etc/my.cnf (按照上面步骤可以直接复制配置文件使用)
------------------------------start my.cnf配置文件-----------------------------------------
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
------------------------------end my.cnf配置文件--------------------------------------------
添加开机启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改 vim /etc/init.d/mysqld
添加路径
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
6.启动MySQL、登录修改密码
启动mysql service mysqld start
加入开机起动 chkconfig --add mysqld
输入 mysql -uroot -p 上面初始化时的密码
如果出现错误 需要添加软连接 ln -s /usr/local/mysql/bin/mysql /usr/bin
登录进去过后可以通过如下命令修改密码:
set password=password('需要修改的密码');
然后执行以下代码进行授权过后可以尝试从其他地方连接了:
直接授权
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限
flush privileges;
(这里还有另外的授权方式,不过本人没有使用,如有想要了解的可以自己百度参考其他博客)
如果以上操作都完成过后还是无法远程连接数据库,可能是3306端口没有开放,这里使用通过修改/etc/sysconfig/iptables文件来解决,你也可以通过命令行直接开放,自行百度:
直接编辑/etc/sysconfig/iptables文件:vi /etc/sysconfig/iptables 进入编辑模式,增加如下代码:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
然后保存退出,使用 service iptables restart 重启
这时再从其他地方连接数据库便可以成功连接了。
来源借鉴:CSDN
原文:https://blog.csdn.net/chudelong1/article/details/83185529