Centos安装mysql

mysql官方安装教程

在线安装

1. 检查系统本身是否有预装的mysql

1.rpm -qa | grep mysql #检查是否安装了mysql
2.rpm -qa | grep mariadb #检查是否安装了mariadb
3.rpm -e xxx  #一般使用此命令即可卸载成功
4.rpm -e --nodeps xxx #卸载不成功时使用此命令强制卸载)

2.安装MySql

1.wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
//下载mysql的rpm的包
2.yum -y install mysql57-community-release-el7-10.noarch.rpm
3.yum -y install mysql-community-server

3.进入Mysql

1.生成初始密码,我在这里并没有生成初始密码,所以我直接把vim /etc/my.cnf文件最后面加入skip-grant-tables 保存文件退出, 使用systemctl restart mysqld 重启服务器, 使用下面的命令查看生成的密码;

grep "password" /var/log/mysqld.log  

再次修改vim /etc/my.cnf, 注释掉skip-grant-tables, 退出免密登录. 不然后面无法修改密码.

2.登录mysqlmysql -uroot -p

mysql -uroot -p
enter your password: 上面获取的初始密码

提示 如果你设置不验证登录只需要mysql回车就好了
3.修改Mysql的root用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

提示这里密码遵守mysql的安全策略(大写英文,小写英文,数字,特殊字符),不然会报错的,虽然可以进行更改,但是不建议更改,这样安些 如果要更改的话

set global validate_password_policy=0;
set global validate_password_length=6;

4.测试登录

看密码是否生效(如果你更改了配置文件下的数据,先把skip-grant-tables)用#号注释掉,然后service mysqld restart 对服务进行重启

mysql -uroot -p 
>>输入你设置的密码

4.设置Mysql远程登陆 (前提:进入到数据库里面)

use mysql;
update user set host='%' where user='root' and host='localhost';
//这里的%是允许所有的ip地址登录这个服务器的mysql服务器
flush privileges;
//刷新权限

然后退出mysql

firewall-cmd --permanent --add-port=3306/tcp  //防火墙开发3306端口
>>success//显示成功
firewall-cmd  --reload
>>success//显示成功

查看防火墙的状态

systemctl status firewalld

如果是running就是启动的,如果是dead就是关闭,systemctl start firewalld
进行启动
这里有的不支持这个命令需要service iptables status进行查看防火墙的状态.

5.使用远程连接

使用软件对mysql进行连接(推荐使用Navicat)这个软件是真的好进行连接

[本教程参考了] : https://www.jianshu.com/p/3b613d4491bf

离线安装

安装依赖

yum -y install libaio

创建用户和组

新建mysql用户和组, 用于设置mysql安装目录文件所有者和所属组

groupadd mysql
useradd -r -g mysql mysql

:

  • 1.useradd -r 表示mysql用户是系统用户, 不可用于登录系统
  • 2.useradd -g 表示把mysql用户添加到mysql用户组中

下载mysql安装包

mysql下载地址

mysql-download

当然也可以使用迅雷或者其他方式下载后再上传到服务器

解压并创建data目录

  • 1.解压到指定目录, 并重命名文件夹
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
  • 2.进入mysql目录,并创建tmp, log, data文件夹
cd /usr/local/mysql
mkdir tmp log data
  • 3.确保mysql下的文件属主都为mysql(下面的命令是在mysql目录下执行的)
chown -R mysql:mysql /usr/local/mysql/

初始化mysql配置表

cd /usr/local/mysql/ # 进入到mysql目录
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data   # 初始化

--user 启动mysql的用户

--basedir mysql 的安装目录

--datadir mysql数据仓库目录

注意

初始化完成后, 注意最后一行, 可能不同的版本出现的位置不一样, 它给出了root的初始密码, 后面登录的时候要这个密码

 [Note] A temporary password is generated for root@localhost: Oow7Fi=lb#dO

例如我的初始密码就是Glly__T!=1z4

我们也可以吧初始化的密码保存到一个临时文件中

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data > /tmp/mysql.pwd

开启加密连接

bin/mysql_ssl_rsa_setup

权限归还

将mysql/目录下除了data、tmp、log目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者

 cd /usr/local/mysql/
 chown -R root:root ./
 # 将 data tmp 和 log还是给mysql用户
chown -R mysql:mysql data
chown -R mysql:mysql tmp
chown -R mysql:mysql log

开机自启

  • 1.复制mysql.server文件到/etc/init.d/mysqld
 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  • 2.添加环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile.d/mysql.sh
  • 3.刷新配置
source /etc/profile
  • 4.设置开机自启
chkconfig mysql on 
service mysql start

更改密码

使用如下命令更改密码

 mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"

由于我的系统是centos8.0在更改密码的时候, 会报如下的错误

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

需要我们安装依赖

yum install libncurses*

等待安装完毕, 再次运行

[root@localhost ~]# mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
mysql: [Warning] Using a password on the command line interface can be insecure.

至此密码修改完成.

自定义mysql启动参数

  • 1.vim /etc/my.cnf
[client]
#password   = your_password
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
port        = 3306
basedir = /usr/local/mysql
socket      = /tmp/mysql.sock
datadir = /usr/local/mysql/data
character_set_server = utf8
collation_server = utf8_general_ci

default_storage_engine = MyISAM
skip-external-locking
key_buffer_size = 64M
max_allowed_packet = 100G
table_open_cache = 256
sort_buffer_size = 1M
net_buffer_length = 4K
read_buffer_size = 1M
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 16M
thread_cache_size = 32
query_cache_size = 32M
tmp_table_size = 64M

#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/usr/local/mysql/log/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on


innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 256M
innodb_log_file_size = 128M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 1M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

注意

如果你安装的mysql 不是在/usr/local/mysql下 , 还需要修改/etc/init.d/mysqld文件

mysqld_pid_file_path=
if test -z "$basedir"
then
  basedir=/usr/local/mysql  
  bindir=/usr/local/mysql/bin
  if test -z "$datadir"
  then
    datadir=/usr/local/mysql/data
  fi
  sbindir=/usr/local/mysql/bin
  libexecdir=/usr/local/mysql/bin
else

大约在62行, 把basedir, datadir, bindir, sbindir,libexecdir , 修改成自己对应的路径

你可能感兴趣的:(Centos安装mysql)