CentOS7下安装Mysql和Memcached 以及 使用C#操作Mysql和Memcached

我本身是学.net的,但是现在很多主流SQL和NOSQL都是部置在linux下,本着好学的精神,前段时间装了个虚拟机,在其装上CentOS64位的服务器系统,对于英文0基础,linux0基础的我来说,过程是相当痛苦的,这里我就不分享了。下面分享一下在这个系统下安装Mysql和Memcached的过程。

安装Mysql

1.Centos 7 默认已不支持mysql ,而是带有MariaDB数据库管理系统(MySQL的一个分支),若要装mysql,最好先将MariaDB卸载

rpm -qa | grep mariadb  #找出所有mariadb 相关的包

rpm -e –nodeps [...]      #[...]代表前面命令找出的包,有几个删几个

2. 下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

3. 安装mysql-community-release-el7-5.noarch.rpm包

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

4. 安装mysql

sudo yum install mysql-server

5.不用密码直接登录mysql,这时mysql服务必须关闭状态

mysqld_safe –user=mysql –skip-grant-tables –skip-networking & mysql -u root mysql

6.进入mysql初始化root密码

update user set password=password(‘...‘) where user=‘root‘;  # ...代表要设置的密码
flush privileges;                                                                          #刷新设置
exit;                                                                                            #退出mysql

7.重启mysql服务并用刚才设置的密码登陆

service mysqld restart  #重启服务mysql -u root -p
passwrod:                  #登陆mysql
show databases;         #显示所有数据库

8.设置mysql远程访问权限

grant all PRIVILEGES on *.* to [email protected]‘%‘ identified by ‘[...]‘;   # ‘%‘代表不限制ip,若要限制可指定具体ip, [...]为密码

flush privileges;                                                                            #刷新设置
exit;                                                                                            #退出mysql

9.开放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

#命令含义:
--zone #作用域
--add-port=3306/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效

10.重启防火墙

firewall-cmd --reload

完成,如果上面都没有问题的话,在windows中,以管理员运行cmd,输入mysql -h[ip] -u[uname] -p[pwd]回车,应该 可以进入mysql客户端操作mysql了。比如我的mysql -h192.168.0.103 -uted -p150 好吧,我在第8步是这样设置的:grant all PRIVILEGES on *.* to [email protected]‘%‘ identified by ‘150‘; 只要我的虚拟机开着linux,你也可以进来搞的。

如果说你到这步还出现1045错误的话,那你就试试通过root进入mysql,在mysql库中,先查看一下user表中的user,host,password字段,看看有没有你在第8步中的设置

use mysq;

select user,host,password from user;

如果没有直接设置一下user表,开通权限。就是一般的sql插入命令,具体命令应该是

use mysql;

update set host=‘%‘  ,user=‘root‘,password=password(‘123‘) from user;

host代表ip限制,user访问的名称,还有密码。

至此在linux下安装mysql服务端并设置开机启动,开启端口全部搞定。

对了,以前装了一个windos下的mysql的,现在我把它全部删了,只保留了一个可视化的管理工具,用它也可以连接的

安装Memcached

有了上面的基础,安装mem快多了,我就不排格式了啊

1.安装memcached
yum clean all
yum -y update
yum -y install memcached

2.查看或修改memcached配置
vim /etc/sysconfig/memcached

默认文件如下
PORT="11211″    #端口
USER="memcached" #用户
MAXCONN="1024″  #最大内存
CACHESIZE="64″  #缓存大小
OPTIONS=""       #其它可选设置

3.找到memcached安装位置,设置启动参数
whereis memcached                                #找出安装位置
memcached: /usr/bin/memcached /usr/share/man/man1/memcached.1.gz

/usr/bin/memcached -d -u root -m 512 -p 11211    #设置启动参数

启动参数说明:
-d 选项是启动一个守护进程。
-u root 表示启动memcached的用户为root。
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。
-p 是设置Memcache的TCP监听的端口,默认为11211

4.启动和查看状态
systemctl restart memcached #重启
systemctl start memcached   #启动
systemctl enable memcached  #开机启动
systemctl status memcached  #状态
systemctl stop memcached    #关闭

5.开放11211端口
firewall-cmd --zone=public --add-port=11211/tcp --permanent

#命令含义:
--zone #作用域
--add-port=11211/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效

6.重启防火墙
firewall-cmd --reload

同样上面的操作完成后,在windows中,打开telnet客户端,进入cmd也可以连接操作mem 还是我的ip为例,输入telnet 192.168.0.103 11211回车,关于mem的命令我这里就不说了,后面主要说一说简单的c#操作mysql和mem

回车后,只要是黑呼呼的片,就说明你已经进入mem客户端了,可以操作mem命令,通常第一个命令是看不见的哦

至此在linux下安装memcached服务端并设置开机启动,开启端口全部搞定。

当然了,我不懂linux,配置都是最基本的,没有任何的安全措施,这些也只是搞搞玩的,必竟我的OADemo也是要用到NoSql的。了解一下也不错

EF6 codefirst操作Mysql 并在.net中使用memcached缓存

这里就搞个最基本的操作,用codefirst建一个表,插入几个数据,并试试用缓存,在缓存中读数据,具体使用以后会在OADemo中用到

建个控制台,nugit 控制台下install-package mysql.data.entity & install-package entityframework & insatll-package enyimmemcached

先建一个Model类,注意要用到memcached操作实体类,这个类要标记为[Serializable]

代码实在太简单,直接贴出来了,有注释

using Enyim.Caching;
using Enyim.Caching.Memcached;
using MySql.Data.Entity;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;

namespace EFForMysql
{
    class Program
    {
        static void Main(string[] args)
        {
            MemcachedClient client = new MemcachedClient();//根据配置文件实例化一个mem客户端

            using(var db=new TestContext())
            {
                db.Database.CreateIfNotExists();//如果数据库不存在创建数据库
                db.Users.Add(new User { Name = "tom", Age = 18, Email = "[email protected]" });
                db.Users.Add(new User { Name = "jim", Age = 18, Email = "[email protected]" });//插入两条数据
                if (db.SaveChanges() > 0)
                {
                    Console.WriteLine("ok");//看看是否插入成功
                }
                var list = db.Users.ToList();//获取数据
                list.ForEach(o => client.Store(StoreMode.Add, o.Name, o));//将数据写入memcached缓存
            }

            User tom = client.Get("tom") as User;//取一条数据
            Console.WriteLine(tom.Email);

            List<string> names = new List<string> { "tom", "jim" };
            IDictionary<string, object> dic = client.Get(names);//一次访问获取多条数据
            foreach(var item in dic)
            {
                User u = item.Value as User;
                Console.WriteLine(u.Email);
            }

            Console.ReadKey();
        }
    }
    [DbConfigurationType(typeof(MySqlEFConfiguration))]//标记数据操作使用mysql配置类型
    public class TestContext:DbContext
    {
        public TestContext() : base("TestContext") { }
        public DbSet<User> Users { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<User>().MapToStoredProcedures();
        }
    }
    [Serializable]
    public class User
    {
        public string Name { get; set; }
        public int Id { get; set; }
        public int Age { get; set; }
        public string Email { get; set; }
    }
}

配置文件也很简单,关健部分有中文注释,主要就是配置mem节点,服务地址和过期时间之类的,另外还有mysql的连接字符串

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

    <!--配置enyim.com(memcached)节点-->
    <sectionGroup name="enyim.com">
      <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
    </sectionGroup>

  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
  </startup>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
      </provider></providers>
  </entityFramework>

  <!--配置Mysql连接字符串-->
  <connectionStrings>
    <add name="TestContext" providerName="MySql.Data.MySqlClient"
          connectionString="server=192.168.0.103;port=3306;database=TestContext;uid=ted;password=150"/>
  </connectionStrings>

  <!--memcached相关配置及服务地址-->
  <enyim.com protocol="Binary">
    <memcached>
      <servers>
        <!--有多服务器时,可相同方式进行多配置-->
        <add address="192.168.0.103" port="11211" />
      </servers>
       <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
    </memcached>
  </enyim.com>

</configuration>

当运行完第一次没问题后,把EF部分的代码全注释掉,可以直接从缓存取数据

时间: 2024-10-05 05:16:44

CentOS7下安装Mysql和Memcached 以及 使用C#操作Mysql和Memcached的相关文章

CentOs7下安装mysql5.7.14,初始化完成登录mysql提示密码过期

解决方法:1. 使用mysql的绝对路径登录,一般mysql的安装路径为/usr/local/mysql,则使用如下命令 /usr/local/mysql/bin/mysql -uroot -p'password' 2.cp /usr/local/mysql/bin/mysql /usr/bin/ mysql -uroot -p'password' 原因解释:安装CentOs的时候,默认安装了mysql,并且版本与自己安装的mysql版本不一致,直接使用mysql -uroot -p'passw

CentOS7下安装MySQL并配置远程连接

一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险 参照百度.开发基本相似). 参考文章:CentOS7 安装MySQL http://www.centoscn.com/mysql/2016/0315/6844.html 这里主要是安装MyS

centos7下安装php+memcached简单记录

1)centos7下安装php 需要再添加一个yum源来安装php-fpm,可以使用webtatic(这个yum源对国内网络来说恐怕有些慢,当然你也可以选择其它的yum源) [[email protected] ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 安装php7-fpm和一些其它的必要的组件 [[email protected] ~]# yum -y install php70w-fpm php

Centos7下安装及配置Zabbix3.0

说到Zabbix相信很多管理员都使用过,因为zabbix所提供的功能给广大管理员们及时得知自己所管理的服务器的服务状态,当然有很多软件服务(cacti.ngios等)都可以实现zabbix类似的功能,但是对于zabbix的功能相对更强大一点,具体就不细说了,今天我们主要介绍一下,Centos7下安装及配置Zabbix3.0的介绍,具体见下: 在安装服务器的时候我们需要注意一些问题:比如服务器的防火墙.selinux等都会影响到Zabbix的正常通信 环境介绍: OS:Centos7 Servic

CentOS-7下安装MySQL5.6.22

CentOS7下安装MySQL5.6.22(当前最新版本:2015-01-17) 转载请注明出处:jiq?钦's technical Blog 一  安装环境 (1)CentOS版本:CentOS-7 查看方法: [[email protected] 桌面]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 来源:官网下载 下载地址:http://www.centos.org/ (2)MySQL版本:MySQL-5.6.2

Centos7下安装php-redis扩展及简单使用

前言: 在本篇博客中,我将给大家介绍如何在Centos7上安装PHP-Redis扩展以及一些简单的实用,关于如何在Centos上安装redis的,可以参考我的上一篇博客 Redis在Centos7上的安装部署 想要在php中操作redis,那就必须安装php-redis扩展,就比如MySQL一样,php想要操作mysql数据库的话,就必须安装mysql扩展,只是在php安装中就默认安装了mysql扩展了. 步骤一:下载解压 下载:https://github.com/nicolasff/phpr

centos7下安装mariadb

参考: http://www.cnblogs.com/Netsharp/p/5875474.html https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft&distro=CentOS&distro_release=centos7-amd64--centos7&version=10.1 RDS for MySQL 备份文件恢复到自建数据库 参考: https://help.aliyun.com/knowl

CentOS7下安装MySQL5.7安装与配置(YUM)

CentOS7下安装MySQL5.7安装与配置(YUM) 安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ # 下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# 安装mysql源shell> yum l

如何在Centos7下安装MySQL5.7

Centos7下安装MySQL5.7 在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1.安装mysql (由于yum源上没有mysql-server.所以必须去官网下载,这里 我们用wget命令,直接获取)wget -i -chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 2.安装mysql的依赖包

centos7下安装指定版本mysql5.7.23

现在mysql版本已经到MySQL 8.0(GA)稳定版本了,所以需求是想简单又快速在centos7下安装指定版本例如MySQL 5.7(GA)版本有下面这种方法 首先需要到mysql官网这里下载对应RPM包来update一下 1.全新安装MySQL的步骤 我这边是想安装5.7.23版本,然后这个rpm包是最新8.0版本的,这边我就需要做点操作了: 首先,将MySQL Yum存储库添加到系统的存储库列表中.按着这些次序: 在http://dev.mysql.com/downloads/repo/