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%’;
在这里插入图片描述
2.8MySQL的默认文件路径

  1. /var/lib/mysql/ #数据库目录
  2. /usr/share/mysql #配置文件目录
  3. /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不允许远程登录,所以远程登录失败了,解决方法如下:

  1. 在装有MySQL的机器上登录MySQL mysql -u root -p密码
  2. 执行use mysql;
  3. 执行update user set host = ‘%’ where user = ‘root’;这一句执行完可能会报错,不用管它。
  4. 执行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设置为用户可读写,其他用户不可写.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值