<div dir="ltr">Hello Phil, I really made a mess trying to explain everything, sorry. I'll try agian:<div><br></div><div>I have a global MySQL Server that stores domains and users. By "global" I mean that we have many independent clusters and different software, all of them read users from that MySQL Server database.</div><div>There is only 1 software allowed to write in this MySQL Server. (as the other software only read from it, we use Master/Slave replication and read from the Slaves in  each cluster).</div><div><br></div><div>I want ejabberd to be able to do that as well:</div><div><br></div><div> * Authenticate users to the existing database without writing to it [achievable by external auth method]</div><div> * After a user user@domain logs in, hist Contact List is filled with all users from the same domain.</div><div><br></div><div>I want ejabberd to read-only that global mysql server for Authentitcation and Contacts List.</div><div><br></div><div>ejabberd related data must be written to another Mysql server (hosted in the same cluster or even the same host).</div><div><br></div><div>If I'm still not clear I'll try to be more specific. Thanks in advance.</div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><br></div>Regards,<div><br></div><div>Webert Lima</div><div>DevOps Engineer at MAV Tecnologia</div><div><b>Belo Horizonte - Brasil</b></div></div></div></div>
<br><div class="gmail_quote">On Wed, Oct 18, 2017 at 11:57 AM, Phil Stracchino <span dir="ltr"><<a href="mailto:phils@caerllewys.net" target="_blank">phils@caerllewys.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 10/18/17 09:46, Webert de Souza Lima wrote:<br>
> Hello,<br>
><br>
> I'm new to ejabberd and I'm trying to design a cluster that would fit<br>
> well with our existing users base.<br>
><br>
> I know that I can provide external authentication, that's a plus.<br>
> The next problem I have is to provide the contact list from my existing<br>
> users db. Is that achievable?<br>
><br>
> The existing users database is a MySQL instance that should not be the<br>
> same of ejabberd's.<br>
> I want ejabberd to be able to read-only the global MySQL users DB, and<br>
> have its own MySQL server (local but cluster-wide).<br>
<br>
<br>
</span>Your question isn't entirely clear.  I don't understand what you mean by<br>
"local but cluster-wide", for example.<br>
<br>
However, let me read between the lines here and make some assumptions:<br>
<br>
You have an existing schema containing your users, which we'll call<br>
(logically enough) 'users', and your ejabberd will connect to MySQL as<br>
user 'ejabberd' and store its data in the schema 'ejabberd', connecting<br>
to MySQL only from localhost.  All jabberd nodes will also be nodes of<br>
the MySQL cluster.<br>
<br>
Is that what you meant?<br>
<br>
In that case you can trivially easily do something like this:<br>
<br>
GRANT SELECT, UPDATE, INSERT, DELETE ON ejabberd.* TO ejabberd@localhost<br>
IDENTIFIED BY 'ejabberd password goes here';<br>
GRANT SELECT ON users.* TO ejabberd@localhost;<br>
FLUSH PRIVILEGES;<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
  Phil Stracchino<br>
  Babylon Communications<br>
  <a href="mailto:phils@caerllewys.net">phils@caerllewys.net</a><br>
  <a href="mailto:phil@co.ordinate.org">phil@co.ordinate.org</a><br>
  Landline: <a href="tel:%2B1.603.293.8485" value="+16032938485">+1.603.293.8485</a><br>
  Mobile:   <a href="tel:%2B1.603.998.6958" value="+16039986958">+1.603.998.6958</a><br>
______________________________<wbr>_________________<br>
ejabberd mailing list<br>
<a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
<a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" rel="noreferrer" target="_blank">http://lists.jabber.ru/<wbr>mailman/listinfo/ejabberd</a><br>
</font></span></blockquote></div><br></div>