一个MySQL折腾了快一个星期,总是出各种问题,感觉自己都脑残了,写个文章记录一下。
1.检查自己的服务器是否存在MySQL
[root@localhost ~]# rpm -qa | grep mysql
如果存在使用rpm卸载
[root@localhost ~]# rpm -e --nodeps #后跟存在的版本
2.下载mysql;https://dev.mysql.com/downloads/mysql/5.6.html#downloads
3.上传MySQL压缩包到 /usr/local/ 下,
解压缩:
[root@localhost local]# tar -zxvf mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
重命名:
[root@localhost local]# mv mysql-5.6.50-linux-glibc2.12-x86_64 mysql
删除安装包:
[root@localhost local]# rm -rf mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
4.创建mysql用户组和mysql用户, (在Linux的/etc/group文件中可查看所有组,在/etc/shadow和/etc/passwd中查看所有用户)
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql
5.修改mysql目录的所有者为mysql用户, (root用户通过chown命令(change own)改变文件的拥有者和群组, 文件拥有者可以使用chmod命令改变文件或目录的访问权限)
[root@localhost local]# chown -R mysql:mysql ./
6.创建mysql数据目录:=》data目录不存在则创建
7.初始化MySQL
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
可能出现问题:-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or
解决:安装一下依赖,再执行初始化
[root@localhost mysql]# yum -y install perl perl-devel
可能出现问题:
解决:安装autoconf库,再执行安装命令
[root@localhost mysql]# yum -y install autoconf
可能出现问题:
解决:缺少libaio库文件
[root@localhost mysql]# yum install libaio* -y
之后再执行初始化操作就可以了
8.修改目录权限
[root@localhost mysql]# chown -R root:root ./
[root@localhost mysql]# chown -R mysql:mysql data
9.将MySQL的启动脚本放到 /etc/init.d 目录下,并启动MySQL
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql
可能报错:
解决:创建此路径并授权给mysql用户
[root@localhost mysql]# mkdir /var/log/mariadb
[root@localhost mysql]# touch /var/log/mariadb/mariadb.log
[root@localhost mysql]# chown -R mysql:mysql /var/log/mariadb/
[root@localhost mysql]# /usr/local/mysql/support-files/mysql.server start
解决:删除/etc/的文件
[root@localhost mysql]# rm -rf /etc/my.cnf
10.设置root密码
[root@localhost bin]# ./mysqladmin -u root password '123456'
提示:Warning: Using a password on the command line interface can be insecure.不安全,进入mysql设置
再bin目录下
[root@localhost bin]# ./mysql -u root -p
登录之后设置
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
到现在MySQL安装成功,可以使用SHOW DATABASES;查看当前数据库。但是还不能远程连接
通过
mysql> GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
查看用户信息
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
[root@localhost bin]# systemctl enable mysql
[root@localhost bin]# systemctl start mysql
同时:配置mysql环境变量,使得不在bin下也能启动
vim /etc/profile
写一个MYSQL_HOME,值为“mysql的安装路径”
在PATH后面加上$MYSQL_HOME/bin
export后面加上MYSQL_HOME
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME
然后重新加载配置:source /etc/profile