linux下安装mysql的方式_linux下安装mysql的两种方式

linux下安装mysql的两种方式

1 源码安装

1 创建mysql用户:

useradd mysql

passwd mysql

2 解压缩下载的mysql包:

tar -zxvf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz -C /home/mysql

cd /home/mysql

mv mysql-5.6.41-linux-glibc2.12-x86_64/* .

rm -rf mysql-5.6.41-linux-glibc2.12-x86_64/

yum -y install perl perl-devel gcc kernel-devel autoconf

3 将mysql目录的权限授给mysql用户和mysql组:

chown -R mysql:mysql /home/mysql/

4 切换到mysql用户,执行安装:

su - mysql

/home/mysql/scripts/mysql_install_db --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

(注意,如果安装报错:scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory,切换到root用户,安装perl以及perl-devel,执行命令:

yum -y install perl perl-devel)

创建错误日志

touch mysql_error.log

5 切换到root用户,复制并修改配置文件,添加msql服务:

复制文件:

cd /home/mysql/support-files

cp my-default.cnf /etc/my.cnf

vi /etc/my.cnf

[mysqld]

basedir = /home/mysql

datadir = /home/mysql/data

socket = /tmp/mysql.sock

log-error=/home/mysql/mysql_error.log

skip-name-resolve

character_set_server=utf8

#init_connect=‘set names utf8’

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

lower_case_table_names = 1

max_allowed_packet = 32M

table_open_cache = 1024

sort_buffer_size = 4M

join_buffer_size = 2M

net_buffer_length = 8M

read_buffer_size = 4M

read_rnd_buffer_size = 8M

thread_cache_size = 300

query_cache_size = 1024M

query_cache_limit = 2M

thread_concurrency = 8

wait_timeout = 315360000

max_connections = 300

max_connect_errors=1844674407370954751

max_connect_errors = 10000

#event_scheduler=1

#innodb_log_file_size=256M

innodb_buffer_pool_size = 4094M

innodb_additional_mem_pool_size = 32M

innodb_log_file_size = 1024M

innodb_log_files_in_group = 2

innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 2

innodb_lock_wait_timeout = 50

innodb_thread_concurrency=8

#innodb_sort_buffer_size=32M

innodb_open_files=4096

innodb_write_io_threads=2

innodb_read_io_threads=2

innodb_max_dirty_pages_pct = 90

innodb_file_per_table=1

[client]

socket=/tmp/mysql.sock

default-character-set=utf8

加入系统服务:

cp mysql.server /etc/init.d/mysql

vi /etc/init.d/mysql

修改文件中的两个变更值

basedir=/home/mysql/

datadir=/home/mysql/data/

6 配置mysql的环境变量:

vi /etc/profile

添加如下内容:

export PATH=$PATH:/home/mysql/bin

source /etc/profile

7 启用mysql:

chkconfig --add mysql

chkconfig mysql on

service mysql start

Starting MySQL… SUCCESS!

8 设置mysql的root用户密码:

/home/mysql/bin/mysqladmin -u root password ‘123456’

9 给root用户配置远程访问权限,设置后可通过客户连接。

GRANT ALL PRIVILEGES on . to ‘root’@’%’ identified by ‘123456’;

flush privileges;

如果遇到报错

1 Starting MySQL… ERROR! The server quit without updating PID file (/home/mysql/data/zh.pid).

cat /home/mysql/mysql_error.log

2018-12-27 16:01:48 5552 [ERROR] Can’t start server : Bind on unix socket: Address already in use

2018-12-27 16:01:48 5552 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?

2018-12-27 16:01:48 5552 [ERROR] Aborting

删除 /tmp/mysql.sock

rm -rf /tmp/mysql.sock

2、MySQL server PID file could not be found!

Starting MySQL… ERROR! The server quit without updating PID file (/home/mysql/data/ss2.pid).

一种可能是mysql目录权限不对

一种可能是,如果手动可以起来,./mysqld --defaults-file=/etc/my.cnf --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

service mysql start 起不来,那就是/etc/init.d/mysql配置有问题,重新配置

2 rpm安装

2.1解压

tar -xvf MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar

2.2 安装server client devel

rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm

rpm -ivh MySQL-client-5.6.36-1.el6.x86_64.rpm

rpm -ivh MySQL-devel-5.6.36-1.el6.x86_64.rpm

2.3将MySQL的配置文件拷贝到/etc目录下。

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

.2.4分别运行下述命令,初始化MySQL及设置密码。

/usr/bin/mysql_install_db #初始化MySQL

service mysql start #启动MySQL

cat /root/.mysql_secret #查看root账号的初始密码,会出现下述所示信息

The random password set for the root user at Tue Sep 12 22:19:19 2017 (local time): 8BOldGKvNrvsb8WB

2.5设置密码

用上述密码登录:mysql -u root -p8BOldGKvNrvsb8WB登录

set password=password(‘123456’);

2.6.设置开机启动

chkconfig mysql on

[root@zs2 mysql]# chkconfig --list | grep mysql

mysql 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

上面打印出来的内容中,2~5为on就是开机启动了。

2.7修改/etc/my.cnf

设置MySQL的字符集,配置MySQL表明不区分大小写(默认情况下,MySQL对表名区分大小写,列名不区分大小写)。在[mysqld]下面加入如下内容:

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci

lower_case_table_names=1 – 列名不区分大小写

max_connections=1000

查看默认引擎 show engines

查看默认目录 show variables like ‘datadir’

查看字符集:

show variables like ‘%char%’;

1eb010252636b694c83565914168d577.png

2.8MySQL的默认文件路径

/var/lib/mysql/ #数据库目录

/usr/share/mysql #配置文件目录

/usr/bin #相关命令目录 #启动脚本

2.9修改数据文件路径

mysql -uroot -p 登录

show variables like ‘%datadir%’

可查看当前目录

cp /var/lib/mysql /home/mysql将默认的文件目录拷贝过来

修改my.cnf,修改datadir=

2.9报错

1、Host is not allowed to connect to this MySQL server解决方法

先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:

在装有MySQL的机器上登录MySQL mysql -u root -p密码

执行use mysql;

执行update user set host = ‘%’ where user = ‘root’;这一句执行完可能会报错,不用管它。

执行FLUSH PRIVILEGES;

2、MySQL无法重启问题解决

service mysqld stop

Warning: World-writable config file ‘/etc/my.cnf’ is ignored

MySQL manager or server PID file could not be found![FAILED]

可以看到mysql停止不了

查看my.cnf的权限

ls -l /etc/my.cnf

-rwxrwxrwx 1 root root 4878 Jul 30 11:31 /etc/my.cnf

权限777,任何一个用户都可以改my.cnf,存在很大的安全隐患.

chmod 644 /etc/my.cnf

my.cnf设置为用户可读写,其他用户不可写.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值