linux下安装MySQL

操作系统:centos 7.2
MySQL版本:mysql-5.6.36

1、卸载当前已经安装的mysql

检查已经安装的mysql

rpm -qa | grep mysql
rpm -qa | grep mariadb

卸载

rpm -e xxxx
rpm -e --nodeps xxxxxx

2. 检查mysql组和用户是否存在,如无创建。

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql

新建组

groupadd mysql

新建用户

useradd -r -g mysql mysql
-r 是表示该用户是系统用户,不能用于登陆系统。

3、安装mysql

tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.36-linux-glibc2.5-x86_64/ /usr/local/mysql

新建mysql的数据目录

mkdir /mnt/toolbox/mysql/

赋予mysql用户的数据目录访问权限

chown mysql /mnt/toolbox/mysql/

cd /usr/local/mysql/scripts
./mysql_install_db --basedir=/usr/local/mysql --datadir=/mnt/toolbox/mysql --user=mysql
(5.7.17命令如下:
/usr/local/mysql/bin/mysqld --initialize --user=mysql
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/opt/toolbox/mysql/

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vi /etc/my.cnf

在[mysqld]后增加下面这句,用于忽略表名的大小写

lower_case_table_names=1

在[mysqld]后增加下面这句,用于解决中文乱码问题

character_set_server=utf8

mysql配置后面会贴出来
将mysql加入到系统启动中。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql 添加以下内容
basedir = /usr/local/mysql
datadir = /mnt/toolbox/mysql

添加到系统启动并设置mysql自动启动
chkconfig --add mysql
chkconfig mysql on

启动mysql

service mysql start

修改root密码

vi /etc/my.cnf
在[mysqld]下面增加一行
skip-grant-tables
重启MySQL
service mysql restart
登录mysql 修改root 密码
/usr/local/mysql/bin/mysql -u root
use mysql
update user set password=password('bonatone') where user='root';
flush privileges;
exit

将刚才加上去的skip-grant-tables删掉 ,再重启mysql

创建mysql数据库

create database test default character set utf8 collate utf8_general_ci;

创建用户

create user 'dsy'@'%' identified by 'dsy';

给用户分配权限

grant all on test.* to dsy;
grant all on test.* to dsy@'%' identified by 'dsy';
grant all on test.* to dsy@'localhost' identified by 'dsy';
flush privileges;

检查数据库编码格式

show variables like "%char%";
SET character_set_server='utf8';
flush privileges;

让mysql能执行函数:用root登陆执行下面代码。可以开放触发器权限

SET GLOBAL log_bin_trust_function_creators = 1;
flush privileges;

至此,mysql已经安装完成.

4、安装中可能会遇到的问题及解决办法:

1、mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

文件权限问题
解决方法:

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/

2、[ERROR] SSL error: Unable to get private key from 'server-key.pem'
find / -name server-key.pem

解决方法:

chown -R mysql:mysql /var/lib/mysql/

3、2017-11-08T09:30:33.168222Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
2017-11-08T09:30:33.168225Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
2017-11-08T09:30:33.168230Z 0 [ERROR] Aborting

端口占用错误
解决方法:

关闭占用的端口即可

4、/usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)

没有创建该目录和权限
解决方法:

mkdir /var/run/mariadb/
chown -R mysql:mysql /var/run/mariadb/

5、Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

mysql.sock问题(解决方法很多,这只是其中一个)这是可以由于系统默认的文件位置和文件位置不一致,解决办法找到文件创建软链接
解决方法:

find / -name mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容